三位数各不相同编程怎么写

时间:2025-01-25 16:28:30 游戏攻略

方法一:双指针法

这种方法的基本思路是先对数组进行排序,然后使用两个指针分别指向当前元素的下一个和数组末尾。通过计算三个数的和与目标值之间的差值,不断调整指针的位置,直到找到最接近目标值的三数之和。

```python

def threeSumClosest(nums, target):

nums.sort()

n = len(nums)

closest_sum = float('inf')

result = []

for i in range(n - 2):

left, right = i + 1, n - 1

while left < right:

current_sum = nums[i] + nums[left] + nums[right]

if abs(current_sum - target) < abs(closest_sum - target):

closest_sum = current_sum

result = [nums[i], nums[left], nums[right]]

if current_sum < target:

left += 1

elif current_sum > target:

right -= 1

else:

return result

return result

示例

nums = [1, 2, 3, 4]

target = 10

print(threeSumClosest(nums, target)) 输出: [1, 2, 7]

```

方法二:嵌套循环

这种方法通过三层嵌套循环遍历所有可能的三位数组合,并检查它们是否各不相同。如果三个数各不相同,则打印出来。

```python

for i in range(1, 10):

for j in range(0, 10):

if j == i:

continue

for k in range(0, 10):

if k == i or k == j:

continue

print(i, j, k)

```

方法三:输入验证和唯一性检查

这种方法首先获取用户输入,然后验证输入的有效性,并检查数字各位的唯一性。如果输入有效且各位数唯一,则输出结果。

```python

def is_unique_digits(number):

digits = str(number)

return len(digits) == len(set(digits))

def main():

while True:

try:

user_input = input("请输入一个三位不相同的数字(100 - 999):")

if 100 <= int(user_input) <= 999 and is_unique_digits(user_input):

print(user_input)

break

else:

print("输入无效,请输入一个三位不相同的数字。")

except ValueError:

print("输入无效,请输入一个三位不相同的数字。")

main()

```

方法四:Java实现

这种方法使用Java编写,通过三层嵌套循环遍历所有可能的三位数组合,并检查它们是否各不相同。如果三个数各不相同,则打印出来。

```java

public class Numble {

public static void main(String[] args) {

System.out.println("由1,2,3,4组成的互不相同的三位数如下:");

for (int x = 1; x <= 4; x++) {

for (int y = 1; y <= 4; y++) {

for (int z = 1; z <= 4; z++) {

if (x != y && x != z && y != z) {

int s = x * 100 + y * 10 + z;

System.out.print(s + "\t");

}

}

System.out.println("");

}

}

}

}

```

以上是几种不同的编程方法,可以根据具体需求和编程环境选择合适的方法实现。