题目链接:here
题意:5种硬币,输出组合数
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 7500;
int coin[5] = {1,5,10,25,50};
int dp[maxn];
int m;
int main()
{
int i, j;
memset(dp, 0, sizeof(dp));
dp[0] = 1;
for (i=0; i<5; i++)
{
for (j=coin[i]; j <= 7500; j++)
{
if (j >= coin[i])
dp[j] += dp[j-coin[i]];
}
}
while (scanf("%d", &m) != EOF)
{
printf("%d\n", dp[m]);
}
return 0;
}