给你六种面额1、5、10、20、50、100元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0-10000的非负整数)的不同组合的个数。
def fun(n):
money = [1,5,10,20,50,100]
dp = [0 for i in range(n+1)] # dp[i]指n为i时的拼凑方法数
dp[0] = 1 #当n为0是,方法数为1
for item in money:
for i in range(1,n+1):
if i >= item:
dp[i] += dp[i-item]
return dp[n]