硬币组合问题

这是一篇讲的很好很好的博文:http://www.cnblogs.com/python27/archive/2013/09/05/3303721.html

#include <bits/stdc++.h>
using namespace std;
int dp[10000][10000];
int coin[]={0,1,5,10,25,50};
void fd(int x)
{
    for(int i=0;i<=5;i++)
        dp[i][0]=1;
    for(int i=1;i<=5;i++)
        for(int j=1;j<=x;j++)
            for(int k=0;k<=j/coin[i];k++)
                dp[i][j]+=dp[i-1][j-k*coin[i]];
}
int main()
{
    int x;
    fd(7489);
    while(~scanf("%d",&x))
        printf("%d
",dp[5][x]);
    return 0;
}


 
原文地址:https://www.cnblogs.com/weeping/p/5679797.html