code如下:
# include <iostream>
#include <cstring>
using namespace std;
int main()
{
long long int money[11]={0,1,5,10,20,50,100,200,500,1000,2000};
long long int tab[11][52000];
int sum,i,j,k,l;
char s[9999];
while(cin.getline(s,9999))
{
l=strlen(s);
s[l++]=' ';s[l]='\0';
sum=0;k=0;
for(i=0;i<l;i++)
{
if (s[i]==' ')
{
sum+=k;
k=0;
}
else
k=k*10+s[i]-48;
}
for(i=1;i<=sum;i++)tab[0][i]=0;
tab[0][0]=1;
for(i=1;!((money[i]>sum) ||(i>10));i++)
{
for(j=0;j<=money[i];j++) tab[i][j]=tab[i-1][j];
for(j=0;j<=sum-money[i]+1;j++) tab[i][j+money[i]]=tab[i][j]+tab[i-1][j+money[i]];
}
//brow();
i--;
cout<<(tab[i][sum]-1)<<endl;
}
}
希望請大家多多幫忙