如何调整下面的代码以找到三个数字,而不是两个数字,从而获得目标金额?我已经从另一个题为";从一个列表中找出两个加起来就是一个特定数字的数字;。非常感谢。
numbers = [2, 4, 6, 8, 10] #revised so that 3 numbers add up to 12
target_number = 12
for i, number in enumerate(invoices[:-1]):
complementary = target_number - number
if complementary in invoices[i+1:]: number, complementary))
break
else:
print("No solutions exist")
如果数字列表相对较小,则可以使用Python标准库中的itertoolscombinations
函数。
import itertools
numbers = [2, 4, 6, 8, 10]
target_number = 12
print([i for i in itertools.combinations(numbers, 3) if sum(i) == target_number])
结果是:
[(2, 4, 6)]