题目描述
给你六种面额1、5、10、20、50、100元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0-10000的非负整数)的不同组合的个数。
输入描述:
输入为一个数字N,即需要拼凑的面额
输出描述:
输出也是一个数字,为组成N的组合个数
示例
输入:
5
输出:
2
我的代码:
val = [1,5,10,20,50,100]
n = int(raw_input())
def solution(n):
if n == 0:
return 0
a = [1 for i in range(n+1)]
for i in range(1,6):
for j in range(i,n+1):
if j >= val[i]:
a[j] += a[j - val[i]]
return a[n]
# print a
print solution(n)