例:人民币有1元,5元,10元,20元,50元,100元,给定一定数额,求其兑换成零钱有多少兑换方法。
解决算法:
1.兑换总数=从最大面额100元开始兑换的方法总数+不从最大面额开始兑换
代码实现:
#兑换零钱问题
def f(n):
if n==1:
return 1
if n==2:
return 5
if n==3:
return 10
if n==4:
return 20
if n==5:
return 50
if n==6:
return 100
return 0
def F(n,k):
if n==0:
return 1
if k==0:
return 0
if n-f(k)>=0:
return F(n-f(k),k)+F(n,k-1)
return F(n,k-1)
print(F(100,6))#以一百元为例