类似于uva674
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;
long long count[32002];
int table[5] = {1, 5, 10, 25, 50};
long long dp(int n) {
count[0] = 1;
int i, j;
for(i=0; i<5; i++)
for(j=table[i]; j<=n; j++)
count[j] += count[j-table[i]];
return count[n];
}
int main() {
int n;
while(scanf("%d", &n)!=EOF) {
memset(count, 0, sizeof(count));
long long ans = 0;
ans = dp(n);
if(ans > 1)
printf("There are %lld ways to produce %d cents change.\n", ans, n);
else if(ans == 1)
printf("There is only 1 way to produce %d cents change.\n", n);
}
return 0;
}