小白疑问
c的问题:将一面额为10元倍数的整钱(<=100元)换成1元、2元和5元的零钱组合(每种面值都要有)。输入要换的面额(如10元),输出所有可能的换法及其数量。请注意,由于结果集的种类比较多,为了匹配和通过测试集,要求你的输出要依次按5元、2元、1元的数量从多到少的组合!
求大佬指点! 你倒是自己写呀,你看别人写的答案,对自己不会有太大的提升 你可以用三个for循环嵌套,x y z分别表示1,2,5元的数量
for z从20开始到0
y从50开始到0,x从100开始到0
如果符合条件,就输出结果
#include <stdio.h>
int main(void)
{
int i, j, k, money;
printf("请输入被替换的面值:");
scanf("%d", &money);
for(i = money / 5; i > 0; i--)
{
for(j = money / 2; j > 0; j--)
{
for(k = money; k > 0; k--)
{
if((k + 2 * j + i * 5) == money)
{
printf("5元需要:%d, 2元需要:%d, 1元需要:%d\n", i, j, k);
}
}
}
}
return 0;
return 0;
} #include <stdio.h>
intmain(){
int x,y;
int i,j=0,k=0,h=0,g=0;
scanf("%d",&i);
j=i/5;
k=i/2;
for(x=j;x>0;x--){
for(y=k;y>0;y--){
h=i-5*x-2*y;
if(h>0){
g++;
printf("%d %d %d\n",x,y,h);
}
}
}
printf("%d\n",g);
}
自己做出来了,只是还不清楚怎么在for循环里打印由大到小,刚刚看到大佬的解答,秒懂!
感谢! 三层for...
能不能层层写注释一下?
让我们观众也学习学习你的思想.
页:
[1]