从列表中找到三个数字,它们加起来就是一个特定的数字



如何调整下面的代码以找到三个数字,而不是两个数字,从而获得目标金额?我已经从另一个题为";从一个列表中找出两个加起来就是一个特定数字的数字;。非常感谢。

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)]

相关内容

最新更新