我提前致歉。我知道,这个问题之前已经被问到了没有产生我想要/需要的结果的答案。我正在尝试写,做在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