前もってお詫び申し上げます。この質問は、私が望む/必要な結果をもたらさない回答で以前に尋ねられたことを認識しています. Python3で次のことを行う関数を作成しようとしています:
指定された金額を生成するすべての方法 (コインの組み合わせ) を返す再帰関数が必要です。この関数には、金額とコインの 2 つの引数のみを含めることができます。再帰について頭を悩ますのに苦労したので、説明も大歓迎です。ありがとう。
これが私が現在持っているものです:
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)