1.牛客--程序员面试金典--9.8 硬币表示
题目描述
有数量不限的硬币,币值为25分、10分、5分和1分,请编写代码计算n分有几种表示法。
给定一个int n,请返回n分有几种表示法。保证n小于等于100000,为了防止溢出,请将答案Mod 1000000007。
测试样例:
6
返回:2
eg:
class Coins {
public:
int countWays(int n) {
// write code here
int coins[4]={1,5,10,25};
int dp[100001] = {0};
dp[0] = 1;
for(int i = 0;i < 4;++i){
for(int j = coins[i];j <= n;++j){
dp[j] =(dp[j]+dp[j-coins[i]])%1000000007;
}
}
return dp[n];
}
};
思路:http://www.cnblogs.com/python27/archive/2013/09/05/3303721.html
(转载自牛客用户:骑着炮弹进城)