零钱问题
本关任务:将一面额为10元倍数的整钱(<=100元)换成1元、2元和5元的零钱组合(每种面值都要有)。输入要换的面额(如10元),输出所有可能的换法及其数量。
请注意,由于结果集的种类比较多,为了匹配和通过测试集,要求你的输出要依次按5元、2元、1元的数量从多到少的组合!
include<stdio.h>
int main(){
int a,b,c,money,sum=0;
scanf("%d",&money);
for(a=20;a>=1;a--){
for(b=50;b>=1;b--){
if(money>(a*5+b*2)){
printf("%d %d %d\n",a,b,money-a*5-b*2);
sum++;
}
}
}
printf("%d",sum);
return 0;
} //这是理想的代码
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#include<stdio.h> //这是我敲的代码,没有考虑到一元钱可以用减法去求的3条件,,造成代码不够简洁
int main()
{ int n,stdio=0; //这里定义n是一个10的倍数
int i,j,k;
scanf("%d",&n);
for(k=19;k>=1;k--)
{
for(j=47;j>=1;j--)
{
for(i=93;i>=1;i--)
{if(n==i*1+j*2+k*5){ ///在这里注意循环的开始是最大的面值,k
printf("%d %d %d\n",k,j,i);
stdio=stdio+1;}}
}
} printf("%d",stdio);
return 0;
}