游戏助手破解版哪个好:用c语言编程

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/09 20:02:25
用100元纸币换1元、2元、5元的零钱,要求换零钱之后的张数为50张。共有多少中换法?下面已编好了请分析每一个步骤
#include<stdio.h>
main()
{int a,b,c;
printf("FIVE\tTWO\tONE\n");
for(a=0;a<=20;a++)
for(b=o;b<=50;b++)
{c=100-5*a-2*b;
if(a+b+c==50)
printf("%d\t%d\t%d\n",a,b,c);}}
程序运行结果
FIVE TWO ONE
0 50 0
1 46 3
2 42 6
3 38 9
4 34 12
5 30 15
6 26 18
7 22 21
8 18 24
9 14 27
10 10 30
11 6 33
12 2 36

a,b,c分别表示5元,2元,1元张数。因为总数是100,所以a不会超过20,b不会超过50,所以for循环只对a从1到20循环,对b从1到50循环。
用100减去5元和2元的钱数,即100-5a-2b,就等于1元的钱数,也正好等于1元的张数。
如果a,b,c相加为50,则满足条件,输出。

最外层循环是遍历5元纸币的张数,第二层循环是遍历2元纸币的张数,第二层循环的循环体中变量c是1元纸币的张数,如果3种纸币张数之和为50(也就是a+b+c==50),那这就是一个解,输出就可以了。