3962 - 15 找零钱
时间限制 : 1 秒
内存限制 : 128 MB
将大面值的钱兑换成5元、2元、1元、5角的零钞
要求零钞总数不超过40张且每种至少1张,求所有兑换方案数
题目输入
输入50或者100,表示50元或者100元
题目输出
输出对应面值的所有兑换方案数
输入/输出样例
输入格式
50
输出格式
668
C语言解答
#include<stdio.h> int main() { int n,x,y,z,m,i=0,a; scanf("%d",&n); for(x=0;x<=20;x++) { for(y=0;y<=(n-x*5)/2;y++) { for(z=0;z<=n-x*5+y*2;z++) { for(m=0;m<=(40-(x+y+z));m++) { if(m%2==0) { a=m/2; if((x*5+y*2+z*1+a==n)&&(x+y+z+m<=40)&&(x>=1&&y>=1&&z>=1&&m>=1)) {i+=1;} } } } } } printf("%d",i); return 0; }
C++解答
#include<stdio.h> int main() { int m,n=0,a,b,c,d; scanf("%d",&m); for(a=1;a<=m/5;a++) for(b=1;b<=m/2;b++) for(c=1;c<=m;c++) for(d=1;d<=2*m;d++) {if(5*a+2*b+c+0.5*d==m&&a+b+c+d<=40) n++;} printf("%d\n",n); return 0; }