状态方程为dp[j] = dp[j] + dp[j -cent[i]];
#include <iostream>
#include <cstdio>
const int maxn = 7500;
using namespace std;
int dp[maxn];
int cent[6] = {0,1,5,10,25,50};
int main()
{
int n;
while(~scanf("%d",&n)){
for(int i=0; i<=n; ++i)
dp[i] = 1;
for(int i=2; i<6; ++i)
for(int j=cent[i]; j<=n; ++j)
dp[j] = dp[j] + dp[j-cent[i]];
printf("%d\n",dp[n]);
}
return 0;
}