题目:如何用1角,2角和5角的硬币凑出10元以下的金额?【注:必须要有1角,2角和5角】
编程思路分析:
- 需要四个变量,分别指代1角,2角和5角和x元(要被凑出的金额)【这里的x需要用户输入】。
- 利用穷举法得出所有结果
- 输出结果。
重点运算思路:
- 穷举法往往可以使用for循环达成。
首先循环1角的数量(for(one=1; one<10*x; one++)),
在该循环中嵌套一个循环,循环2角的数量(for(two=1; two<10*x/2; two++)),
在该循环中再嵌套一个循环,循环5角的数量for(five=1; five<10*x/5; five++))。
【顺序可以打乱,不影响。】 - 如果只需要一种方法,那么可以使用break;语句或者goto语句。
- 代码中已经给出了所有种类。
实现代码如下:
#include<stdio.h>
//凑硬币,1角,2角,5角的硬币怎么凑出10元以下的金额?
int main(){
int x = 0;//10元以下的金额
scanf("%d", &x);
int one, two, five;
//int exit = 0;
for(one=1; one<x*10; one++){
for(two=1; two<x*10/2; two++){
for(five=1; five<x*10/5; five++){
if(one+two*2+five*5 == x*10){
printf("%d张1角+%d张2角+%d张5角=%d元\n", one, two, five, x);
//exit = 1;
//break;
goto out;
}
}
//if(exit) break;
}
//if(exit) break;
}
out:
return 0;
}