问题1: 将20元钱,换成1, 2, 5, 10元面额的人民币,共有多少种方案?
问题2: 将20元钱,换成1, 2, 5, 10元面额的人民币,求最少使用多少张?
问题1:
解决方法: 递归遍历所有方案 或 参考整数划分。
令方案数为q(n,m):
q(n, m) = q(n-1, 1) + // 要求q>=1 并且1<=m
q(n-2, 2) + // q>=2 并且2<=m
q(n-5, 5), // q>=5并且5<=m
q(n-10, 10), // q>=10并且10<=m
q(0, *) = 0
python代码:
#!/usr/bin/python
# -*-coding: utf-8-*-
def disp( indx, l):
print( l[0:indx] )
def ch(n,m,l,indx):
if 0==n:
disp(indx, l)
return
changes = [1, 2, 5, 10]
for i in changes: