c语言程序设计答案 100元买100只鸡,公鸡5元一只,母鸡3元一只,小鸡1元3只,该怎么买???

 我来答
碧海风云

2017-06-23 · 碧海风的秘密小据点!
碧海风云
采纳数:909 获赞数:10281

向TA提问 私信TA
展开全部

写个三重循环来寻找购买方案。

#include <stdio.h>

int main(void) {

int i,j,k,count=0;

for (i=1;i<=100/5;i++) /*公鸡*/
for (j=1;j<=100/3;j++) /*母鸡*/
for (k=1;k<=100*3;k++) /*小鸡*/
if (i*5+j*3+k==100 && i+j+k*3==100) {
count ++;
printf ("方案%d:%d只公鸡,%d只母鸡,%d只小鸡。\n",count,i,j,k*3);
printf ("100只鸡 = %d + %d + %d\n",i,j,k*3);
printf ("100元钱 = %d×5 + %d×3 + %d/3 = %d + %d + %d\n",i,j,k*3,i*5,j*3,k);
printf ("\n"); 
}
}

运行结果

老冯文库
2017-06-23 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8733

向TA提问 私信TA
展开全部

使用穷举法。

C语言程序:

#include <stdio.h>

void main() {
int a, b, c;

printf("%6s%6s%6s\n", "公鸡", "母鸡", "小鸡");
for(a=0; a<=20; a++)
for(b=0; b<=33; b++)
for(c=0; c<=300; c+=3)
if(a+b+c==100 && 5*a+3*b+c/3==100)
printf("%6d%6d%6d\n", a, b, c);
}


运行结果:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JEGDIHTDJ
2017-06-13 · TA获得超过1173个赞
知道小有建树答主
回答量:949
采纳率:0%
帮助的人:694万
展开全部
说我的想法,代码自己写……
1、简单粗爆的,直接3个FOR循环,变量(如a,b,c)代表三种鸡各自的数量,然后再判断结果(?5a+3b+c/3=100,如果是就打印出来。这样的话至少要循环1百万次。
2、也可以加点简单的判断,在循环之前,找出变量的范围。
5元一只的,只要大于20,3元的大于33只就没有意义了,而小鸡的数量,则必需为3的倍数
也就是相对减少了循环的次数。
3、或者,用两个FOR 循环,因为确定了两种鸡的数量,第三种也就确定了,这个时候再判断 是不是100元。再加上第二点减少了变量的范围,效率是更高一点。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenxiangbjxa
推荐于2017-06-23
知道答主
回答量:1
采纳率:0%
帮助的人:1420
展开全部
#include "iostream.h"
void main()
{
int chicken,hen,cock;
cout<<"chicken,hen,cock number= ";
cout<<endl;
for(chicken=0;chicken<=99;chicken+=3)
for(hen=0;hen<=33;hen++)
for(cock=0;cock<=20;cock++)
if(chicken/3+3*hen+5*cock==100)
if(chicken+hen+cock==100)
{
cout<<" chicken="<<chicken<<" hen="<<hen<<" cock="<<cock;
cout<<endl;
}

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卫班科技
2017-06-22 · TA获得超过130个赞
知道小有建树答主
回答量:136
采纳率:100%
帮助的人:32.1万
展开全部

运用算法


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(11)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式