把一张一元的钞票,换成一分,二分,和五分的硬币,每种至少五枚,问有多少种方案(求编写一个C语言程

把一张一元的钞票,换成一分,二分,和五分的硬币,每种至少五枚,问有多少种方案(求编写一个C语言程,第1张

/把一张一元的钞票,换成一分,二分,和五分的硬币,每种至少五枚,问有多少方案/

#include <stdioh>

 

int main() {

    int n1, n2, n5;

    for (n1 = 5; n1 <= 65; n1++)        //因为2和5至少5枚,所以1至多有65

        for (n2 = 5; n2 <= 35; n2++)    //同理1和5至少5枚,所以2至多有35

            for (n5 = 5; n5 <= 17; n5++)//同上

                if (n1  1+ n2  2 + n5  5 == 100)

                    printf("%3d  1 + %3d  2 + %3d  5 = 100\n", n1, n2, n5);

    return 0;

}

#include <stdioh>

#include <stdlibh>

#include <timeh>

int main(void)

{

int count_z = 0,count_s = 0,count_x = 0;

int flag;

srand((unsigned int)time(NULL));//以时间作为种子。

while(count_s < 3 && count_x < 3)

{

flag = rand()%2;//产生0和1两个随机数,作为正反面。

if(flag)

{

count_x++;

count_s = 0;

printf("国徽向下 !\n");

}

else

{

count_s++;

count_x = 0;

printf("国徽向上 !\n");

}

count_z++;

}

printf("========================================================\n");

printf("总共抛了 %d 次!\n", count_z);

system("pause");

return 0;

}

#include<stdioh>

void main()

{

int a,b,c,d=0;

for(a=0;a<=100;a++)

for(b=0;b<=50;b++)

for(c=0;c<=20;c++)

{

if(100==(a+2b+5c))

{

printf("%d,%d,%d\n",a,b,c);

d=d+1;

}

}

printf("%s%d%s\n","总共有",d,"种换法。");

}

主要是增加了变量 d 来记录有多少种换法!

我认为楼上的回答是不正确的,分析如下:

因为在一正一反中,可以有两种情况:先正后反,先反后正,再加上两正,两反,一共有四种情况了,所以只能是四选一。

用这种正反的办法,好像不行。

可以考虑在直角坐标系中作三条射线,一条0度,一条120度,一条240度,并规定三个左闭右开的区间,即[0,120),[120,240),[240,360),在这个坐标范围内抛硬币,看落在那个区间。供参考。

以下是用c语言编写的程序(后面有运行结果):

#include <stdioh>

int Arrange(float n)//返回兑换方案

{

int yiJiao=0;//1角硬币的数量

int wuJiao=0;//5角硬币的数量

int yiYuan=0;//1元硬币的数量

int moneyCount=n10;//总金额元化成角

int YiJiao=0;//最少硬币数量中1角硬币的数量

int WuJiao=0;//最少硬币数量中5角硬币的数量

int YiYuan=0;//最少硬币数量中1元硬币的数量

int count=0;//兑换方案数

//三次循环

for(yiJiao=0;yiJiao<=moneyCount/1;yiJiao++)

for(wuJiao=0;wuJiao<=moneyCount/5;wuJiao++)

 for(yiYuan=0;yiYuan<=moneyCount/10;yiYuan++)

  if(yiJiao1+wuJiao5+yiYuan10==moneyCount)

  {

   count++;

   printf("%02f元可兑换成%d个1角硬币和%d个5角硬币和%d个1元硬币。\n",n,yiJiao,wuJiao,yiYuan);

   if(yiJiao+wuJiao+yiYuan<YiJiao+WuJiao+YiYuan||YiJiao+WuJiao+YiYuan==0)

   {

    YiJiao=yiJiao;

    WuJiao=wuJiao;

    YiYuan=yiYuan;

   }

  }

  printf("---------------------------------------------------------------\n");

  printf("其中找出的硬币个数最少的情况是:%d个1角硬币和%d个5角硬币和%d个1元硬币,共计%d个硬币。\n",YiJiao,WuJiao,YiYuan,YiJiao+WuJiao+YiYuan);

  printf("---------------------------------------------------------------\n");

return count;

}

void main()

{

printf("以下是兑换方案:\n");

 printf("兑换方案共有%d种。\n",Arrange(270));

}

#include<stdioh>

void main(){

int n;

printf("输入要找的硬币总数:");

scanf("%d",&n);

int five_cent = 0;//5角

five_cent = n/50;

n -= five_cent 50;

int one_cent = 0;//1角

one_cent = n/10;

n -= one_cent 10;

int five_penny = 0;//5分

five_penny = n/5;

n -= five_penny 5;

int two_penny = 0;//2分

two_penny = n/2;

n -= two_penny 2;

int one_penny = 0;//1分

one_penny = n;

printf("5角:%d\n",five_cent);

printf("1角:%d\n",one_cent);

printf("5分:%d\n",five_penny);

printf("2分:%d\n",two_penny);

printf("1分:%d\n",one_penny);

}

#include <stdioh>

void main()

{

int i,j,k,sum,x=0;

printf("请输入总金额(单位为分):");

scanf("%d",&sum);

if(sum<8||sum>100)printf("输入超出题目范围");

printf("可行的方案有:\n");

for(i=0;i<=20;i++)

for(j=0;j<=50;j++)

for(k=0;k<=100;k++)

if(5i+2j+k==sum)

{

printf("五分硬币%d个,二分硬币%d个,一分硬币%d个\n",i,j,k);

x++;

}

printf("共有%d种方案",x);

getchar();

getchar();

getchar();

}

以上就是关于把一张一元的钞票,换成一分,二分,和五分的硬币,每种至少五枚,问有多少种方案(求编写一个C语言程全部的内容,包括:把一张一元的钞票,换成一分,二分,和五分的硬币,每种至少五枚,问有多少种方案(求编写一个C语言程、硬币游戏:写一个程序模拟反复抛硬币,直到连续出现三次正面或反面为止,此时你的程序应该显示抛硬币的总次、C++;将一元人民币兑换成1,2,5分的硬币,有多少种换法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9748408.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存