我提前道歉。我知道之前有人问过这个问题,但答案并没有产生我想要/需要的结果。我正在尝试编写一个在 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)