硬币组合问题

这是一篇讲的很好很好的博文: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\n",dp[5][x]);
    return 0;
}

 

 
posted @ 2016-07-17 23:52  weeping  阅读(355)  评论(0编辑  收藏  举报