【发布时间】:2020-04-11 06:08:28
【问题描述】:
我需要编写一个算法,它接收一个数字和一个数字列表,并从列表中返回可以创建总和数的数字的可能组合的数量。例如: def coin(5,[1,2,5,6] 应该返回数字 4,因为列表中有 4 种可能的组合可以一起创建数字 5。下面是我尝试过的代码,但确实如此不工作。输出是 6 而不是 4,我希望能帮助我理解原因。
def coin(n,lst):
if n<=1:
return 1
else:
total=0
for i in range(len(lst)):
change=lst[i]
if change>n:
continue
else:
result=coin(n-change,lst[i:])
if result>0:
total+=result
return total
print(coin(5,[1,2,5,6]))
【问题讨论】:
标签: python-3.x recursion coin-change