【发布时间】:2021-06-15 00:54:43
【问题描述】:
我正在尝试在列表中查找 x 数字的索引,这些索引加起来为特定目标。
当我在python中输入以下代码时,没有给出任何输出。
我在这里错过了什么?
提前非常感谢, 马特奥
import random
import math
def find(number):
final = []
trans = random.sample(values,number)
summation = sum(trans)
number_of_guesses = 0
while number_of_guesses < math.factorial(len(values))/math.factorial(len(values)-
number):
if summation == target:
for i in range(len(values)):
if trans[i] in values:
final.append(i)
return final
else:
trans = random.sample(values,number)
find(number)
number_of_guesses += 1
values = [100, 150, 140, 100, 120, 270, 500, -100, 120, 150, 160]
target = 390
find(2)
【问题讨论】:
-
当您使用
find(number)递归时,您不会使用return。我怀疑你想要return find(number)- 但我质疑将递归和迭代结合起来。这种方法似乎似是而非。例如,如果summation不是target,那么您将永远循环下去。 -
感谢@ElliottFrisch。所以我只需要将'find(number)'调整为'return find(number)'?不过我理解你的意思——我的电脑正在努力寻找解决方案哈哈。我需要找到更好的方法。