我提前致歉。我知道,這個問題之前已經被問到了沒有產生我想要/需要的結果的答案。我正在嘗試寫,做在Python3以下功能:遞歸找到產生指定數量的所有硬幣組合
我需要返回產生一定量的方式(硬幣組合)的所有號碼的遞歸函數。這個函數只能包含兩個參數,金額和硬幣。我有困難的時候圍繞遞歸,所以解釋也將不勝感激。謝謝。
這是我目前有:
COINS = dict(
USA=[100, 50, 25, 10, 5, 1],
AUSTRALIA=[200, 100, 50, 20, 10, 5],
UK=[500, 200, 100, 50, 20, 10, 5, 2, 1]
)
def change(amount, coins):
"""
>>> change(100, COINS['USA'])
293
"""
if amount < 0:
return 0
elif amount == 0:
return 1
else:
biggestcoin, *rest = coins[0], coins[1:]
return change(amount-biggestcoin, coins) + change(amount, rest)
如果這是家庭作業(我假設它是),請其標記爲此類。如果有很多類似的問題,你的問題又有什麼不同? – phihag 2012-03-22 01:06:34
嘗試搜索造成問題的更改。維基百科頁面上有很多很好的信息。 – 2012-03-22 01:09:30
聞起來像家庭作業 – inspectorG4dget 2012-03-22 01:14:28