首页 > 试题广场 >

拼凑钱币

[编程题]拼凑钱币
  • 热度指数:8900 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给你六种面额 1、5、10、20、50、100 元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0~10000的非负整数)的不同组合的个数。

输入描述:
输入包括一个整数n(1 ≤ n ≤ 10000)


输出描述:
输出一个整数,表示不同的组合方案数
示例1

输入

1

输出

1
N=input('')
N=int(N)
penny=[1,5,10,20,50,100]
matrix = [[0 for i in range(6)] for j in range(N+1)]
matrix[0]=[1,1,1,1,1,1]
for i in range(N+1):
    matrix[i][0]=1
    for j in range(1,6):
        if i-penny[j]>0:
            matrix[i][j]=sum(matrix[i-penny[j]][0:j+1])
        if (i-penny[j])==0:
            matrix[i][j]=1
            
print(sum(matrix[i][:]))

发表于 2017-07-06 15:33:37 回复(2)