考虑最后一个硬币是什么再加上之前的就好了。
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
int n,i,j,a[8000],coin[5]={1,5,10,25,50};
memset(a,0,sizeof(a));
a[0]=1;
for(i=0;i<5;i++)
{
for(j=coin[i];j<8000;j++)
a[j]+=a[j-coin[i]];
}
while(~scanf("%d",&n))
{
printf("%d
",a[n]);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/