马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
课后作业有一题让生成一个随机列表,然后找到其中两个数值的和等于目标数值的问题
我写的代码每次都无法找到两个数值的和等于目标数值,但是答案的代码每次都能找到好多
烦请大家帮看看是什么原因#我写的
import random
nums = []
for i in range(0,10000):
nums[len(nums):] = [random.randint(1, 65535)]
a = input("type your target number")
for www in range (0, len(nums)):
for j in range(1, len(nums)-www):
c = nums[www] + nums[www+j]
#print(c)
if c == a:
print(nums[www], "+", nums[www+1], "=", a)
break
if c == a:
break
else:
print("no such number")
#答案
import random
nums = []
for i in range(10000):
x = random.randint(1, 65535)
nums.append(x)
target = int(input("请录入目标整数:"))
isFind = False
n = len(nums)
for i in range(n):
for j in range(i+1, n):
if nums[i] + nums[j] == target:
print([i, j])
isFind = True
if isFind == False:
print("找不到!")
主要问题a是字符串,不可能和一个整数相等。
另外两个for循环的range范围要像答案那样写。
|