用C语言做“换零钱问题。将一元钱换成1分,2分或5分的零钱有多少种换法?”

来自:    更新日期:早些时候
“换零钱问题。将一元钱换成1分,2分或5分的零钱有多少种换法?”~

#include
#include
int main()
{
int one,two,five,num=0;
for(one=0;one<=100;one++)
for(two=0;two<=50;two++)
for(five=0;five<=20;five++)
if(one+two*2+five*5==100){num++;
printf("100=%d*1+%d*2+%d*5
",one,two,five);}
printf("
%d possibilities
",num);

system("pause");
return 0;
}

这程序很好写,不过关键是看算法设计得怎么样,是不是最优的。我只写一个最简单的,自己尝试优化下,这也是编程的乐趣之一。

int fCent; //5分个数
int tCent; //2分个数
int oCent; //1分个数
int count=0; //兑换方法个数
for(fCent=0;fCent<=20;fCent++)
{
for (tCent=0;tCent<=50;tCent++)
{
oCent=100-5*fCent-2*tCent;
if(oCent>=0) count++;
}
}

把上面程序放到main中就可以了,你想要的输出就是count的值。还有看你说的题意,是否2分的不能是0个,如果有这个要求第二个for循环,也就是tCent 从1开始就可以了。
自己再去优化吧。

#include "stdio.h"
//穷举法
void main()
{
int i,j,n,s=0;
for(i=0;i<=20;i++) //5分最多换二十个
for(j=0;j<=50;j++) //2分最多换五十个

for(n=0;n<=100;n++) //1分可以换一百个
if( 5*i+2*j+1*n == 100)
{
printf("%d %d个 , %d %d个 , %d %d个",5,i,2,j,1,n);
printf("\n");
s++;
}
printf("一共有%d种方法",s);

}


用C语言做“换零钱问题。将一元钱换成1分,2分或5分的零钱有多少种换法?”视频

相关评论:
  • 13084469711用C语言做“换零钱问题。将一元钱换成1分,2分或5分的零钱有多少种换法...
    黄欧贫void main(){ int i,j,n,s=0;for(i=0;i<=20;i++) \/\/5分最多换二十个 for(j=0;j<=50;j++) \/\/2分最多换五十个 for(n=0;n<=100;n++) \/\/1分可以换一百个 if( 5*i+2*j+1*n == 100){ printf("%d %d个 , %d %d个 , %d %d个",5,i,2,j,1,n);printf...

  • 13084469711“换零钱问题。将一元钱换成1分,2分或5分的零钱有多少种换法?”
    黄欧贫printf("100=%d*1+%d*2+%d*5\\n",one,two,five);} printf("\\n%d possibilities\\n",num);system("pause");return 0;}

  • 13084469711c语言,换硬币。将一笔零钱(大于8分,小于1元,精确到分)换成5分、2分和...
    黄欧贫k <= n\/v1; k++) { if ((i * v5 + j * v2 + k * v1) == n) { printf("方法:1分数量: %d 2分数量: %d 5分数量: %d\\n", k, j, i); num++; } } } } printf("总共有 %d 种换法\\n", num);}int main(){ scanf(...

  • 13084469711C语言编写程序:要将1元人民币换1角,2角,5角的零钱,有几种换法?
    黄欧贫int main(){ int i,x,y,z, count=0;for(z=0; z<=2;z++)for(y=0;y<=5;y++)for(x=0;x<=10;x++){ if((x+2*y+5*z)==10){printf("%d %d %d\\n",x,y,z);count++;} } printf("%d",count);}

  • 13084469711C语言编程:将1元人民币兑换为1角、2角和5角的零钱,编写程序计算有多少...
    黄欧贫include<stdio.h> int main(){ int i, j, k, cnt = 0;for (i = 0; i <= 10; i ++)for (j = 0; j <= 10; j += 2)for (k = 0; k <= 10; k +=5)if (i + j + k == 10)cnt ++;printf("%d\\n", cnt);} ...

  • 13084469711把一元钱全兑换成1分,2分,5分的硬币,有多少种兑换方法?用C语言...
    黄欧贫main(){ int i,j,k;int rmb=1000;int sum=0;for(i=1;;i++){ for(j=1;;j++){ for(k=1;;k++){ if((i+2*j+5*k)==1000)sum++;} } } printf("%d",sum);} 输入在一行中给出待换的零钱数额x∈(8,100)。要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换...

  • 13084469711银行换零钱。假定你拿1张百元钞票到银行换零,要求是必须换成若干张20...
    黄欧贫从问题的角度分析我们可以用三重循环来就求解答案。但是我们可以优化我们的循环。因为20元的最多有5张,10元的最多有10张,5元的最多有20张。同时我们求出20元的和10元的张数,进而设计出算法。程序运行的部分结果为0张20元,0张10元,20张5元、0张20元,1张10元,18张5元、0张20元,2张...

  • 13084469711C语言。将一笔零钱(大于8分,小于1元,精确到分)换算成1分,2分,5分的...
    黄欧贫这个,有一个更为全面的代码,实现的功能:硬币的个数;硬币组合的方式 include <stdio.h>intmain(){ int n;\/\/用于用户输入的分钱数 int x,y,z;\/\/x是1分,y是2分,z是5分(硬币个数) int num=0;\/\/用于保存有多少种方法 printf("请输入金额:"); scanf("%d",&n); ...

  • 13084469711C语言 换零钱
    黄欧贫\/\/穷举法 void main(){ int i,j,n,s=0;for(i=0;i<=20;i++) \/\/5分最多换二十个 for(j=0;j<=50;j++) \/\/2分最多换五十个 for(n=0;n<=100;n++) \/\/1分可以换一百个 if( 5*i+2*j+1*n == 100){ printf("%d %d个 , %d %d个 , %d %d个",5,i,2,j,1,...

  • 13084469711C语言问题:要将100元钱换成1元,2元,5元的零钱,编程求出有几种换法?这 ...
    黄欧贫int count = 0;\/\/换法数量 int temp; int m = 100;\/\/总钱数 int a = 1;\/\/1元面值 int b = 2;\/\/2元面值 int c = 5;\/\/5元面值 \/\/a, b, c的值还可以是10,20,50 for (int i = 0; i <= m \/ b; ++i)\/\/++i的意义在于100必须换成三类纸币,需要大于等于1张 { for (int j =...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网