我目前正在尝试编写一些代码,给定一个硬币值列表,将返回所有可能的硬币总和合计值。这里有一个程序应该如何运行的例子:递归 - Python硬币组合列表
>>> find_changes(4,[1,2,3])
[[1, 1, 1, 1], [2, 1, 1], [1, 2, 1], [3, 1], [1, 1, 2], [2, 2], [1, 3]]
我得到了下面的代码模板填写:
def find_changes(n, coins):
if n < 0:
return []
if n == 0:
return [[]]
all_changes = []
for last_used_coin in coins:
### DELETE THE "pass" LINE AND WRITE YOUR CODE HERE
pass
return all_changes
我使用for
循环内的以下代码尝试:
all_changes.append[last_used_coin]
find_changes(n-last_used_coin,coins)
目前无法使用。我究竟做错了什么?
什么是它应该做的?出了什么问题?家庭作业需要更多的努力... – sdasdadas
是的,我知道,它应该返回给我们所有可能的组合列表的列表,我是新的Python递归,所以..... – user2928714
你应该先数字了解你的基本情况,然后弄清楚如何将问题分解成更小的子问题。如果这很难(因为这不是最简单的递归问题),首先尝试解决像斐波那契递归这样的问题。 – sdasdadas