c 语言百钱买百鸡 一 次 循环 解决 求思路

来自:流行食品    更新日期:早些时候
c语言百钱买百鸡问题的流程图~

#include
void main()
{
int mj,gj,xj,n=0;
printf(" 百元买百鸡问题求解方案
") ;
printf(" ----------------------
") ;
printf("母鸡公鸡小鸡
") ;
for(mj=0;mj<=100;mj++)
for(gj=0;gj<=100;gj++)
{
xj=100-mj-gj;
if(xj*0.5+mj*3+gj*2==100)
{
n++;
printf("方案%d:%d%d%d
",n,mj,gj,xj);
}
}
}

这段代码中小鸡价值半钱,母鸡价值3钱,公鸡价值2钱,允许某种鸡只数为零
如果和你的题目不同的话,对代码略作修改即可

为方便计算,把小鸡的价格定义为1,母鸡价格为9,公鸡15,这样可以把问题当作300钱买100鸡了:

#include int price[3] = { 15, 9, 1 };int chicknum[3];void buychick(int curmoney, int ci) {int max, i;max = curmoney / price[ci];for (i = 1; i <= max; ++i){chicknum[ci] = i;if (2 == ci){if (100 == chicknum[0] + chicknum[1] + chicknum[2])if (300 == chicknum[0] * price[0] + chicknum[1] * price[1] + chicknum[2] * price[2])printf("公鸡:%4d 母鸡:%4d 小鸡:%4d
", chicknum[0], chicknum[1], chicknum[2]);}elsebuychick(curmoney - chicknum[ci] * price[ci], ci + 1);}}int main(){buychick(300, 0);return 0;}

#include <stdlib.h>
#include <stdio.h>
int main()
{
int a,b,c,num,mon,i;
//a,b分别为公鸡母鸡数量,c为雏鸡数量除以3
printf("本程序用来解决百钱买百鸡的问题。\n");
system("pause");
for(c=0;c<=33;c++)
{
num=100-3*c;mon=100-c;
if((mon-3*num)%2==0)
{
a=(mon-3*num)/2;
if(a<0||a>15) continue;
b=num-a;
if(b<0||b>25) continue;
//通过两个条件分别判断a和b的值是否在指定区间(否则会产生负值和很大的值)
printf("分配:公鸡%d只,母鸡%d只,雏鸡%d
只,为百钱买百鸡的答案。\n",a,b,3*c);
}
}
system("PAUSE");
return 0;

}


c 语言百钱买百鸡 一 次 循环 解决 求思路视频

相关评论:

相关主题精彩

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

Copyright © 喜物网