给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,如找到,解是唯一的。找不到则显示 "no answer"。输出的下标按从小到大排序。用一重循环加字典实现。 输入格式: 在一行中给出这组数。 在下一行输入目标数 输出格式: 在一行中输出这两个数的下标,用一个空格分开。
时间: 2024-02-27 20:56:34 浏览: 68
以下是使用一重循环加字典实现的 Python 代码:
```python
nums = list(map(int, input().split())) # 输入整数列表
target = int(input()) # 输入目标数
num_dict = {} # 定义一个字典,用于存储每个数的下标
for i in range(len(nums)):
complement = target - nums[i] # 计算需要的互补数
if complement in num_dict: # 如果互补数在字典中已经存在
print(num_dict[complement], i) # 输出两个数的下标
break
num_dict[nums[i]] = i # 将当前数加入字典
else:
print("no answer") # 没有找到符合条件的数对
```
程序首先读入一组整数列表 `nums` 和目标数 `target`,然后定义一个字典 `num_dict`,用于存储每个数的下标。接下来进行一重循环,对于每个数,先计算需要的互补数,然后判断互补数是否在字典中已经存在,如果存在,则输出两个数的下标并退出循环;如果不存在,则将当前数加入字典。如果循环正常结束(即没有找到符合条件的数对),则输出 "no answer"。
阅读全文