硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007
简要题解:
完全背包简单题,枚举币值,统计次数即可。主要代码如下
class Solution {
public:
int mod=1000000007;
int waysToChange(int n) {
int a[]={1,5,10,25};
vector<int>dp(n+1,0);
dp[0]=1;
for(int i=0;i<4;i++)
for(int j=a[i];j<=n;j++)
{
dp[j]=(dp[j]+dp[j-a[i]])%mod;
}
return dp[n];
}
};