我目前正在嘗試編寫一些代碼,給定一個硬幣值列表,將返回所有可能的硬幣總和合計值。這裏有一個程序應該如何運行的例子:遞歸 - 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