|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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范围要像答案那样写。
|
|