c语言的百钱买百鸡问题。

用结构体和数组的方法解决百钱买百鸡问题。... 用结构体和数组的方法解决百钱买百鸡问题。 展开
 我来答
刀无极啊
2016-12-16 · TA获得超过3767个赞
知道大有可为答主
回答量:2960
采纳率:85%
帮助的人:934万
展开全部
我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?

翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?

题目分析
如果用数学的方法解决百钱买百鸡问题,可将该问题抽象成方程式组。设公鸡x只,母鸡y只,小鸡z只,得到以下方程式组:
A:5x+3y+1/3z = 100
B:x+y+z = 100
C:0 <= x <= 100
D:0 <= y <= 100
E:0 <= z <= 100

如果用解方程的方式解这道题需要进行多次猜解,计算机的一个优势就是计算速度特别暴力并且无怨无悔,所以我们可以欺负她、蹂躏她!因此我们用穷举法的方式来解题,需要101^3次猜解,但对于计算机来说,小CASE!

代码清单:
#include <stdio.h>int main()
{ int i, j, k;
printf("百元买百鸡的问题所有可能的解如下:\n");
for( i=0; i <= 100; i++ )
for( j=0; j <= 100; j++ )
for( k=0; k <= 100; k++ )
{
if( 5*i+3*j+k/3==100 && k%3==0 && i+j+k==100 )
{
printf("公鸡 %2d 只,母鸡 %2d 只,小鸡 %2d 只\n", i, j, k);
}
}
return 0;
}
运行结果:百元买百鸡的问题所有可能的解如下:
公鸡 0 只,母鸡 25 只,小鸡 75 只
公鸡 4 只,母鸡 18 只,小鸡 78 只
公鸡 8 只,母鸡 11 只,小鸡 81 只
公鸡 12 只,母鸡 4 只,小鸡 84 只
百度网友713ec0d
2016-12-03
知道答主
回答量:5
采纳率:0%
帮助的人:2.7万
展开全部
#include<stdio.h>

int main()
{
int n1=0,n2=0,n3=0;
for (n1=0;n1<1000;n1++)
{
for (n2=0;n2<1000;n2++)
{
for (n3=0;n3<1000;n3++)
{
if (5*n1+3*n2+n3==100)
{
printf("公鸡=[%d],母鸡=[%d],小鸡=[%d]\n",n1,n2,n3);
}
}
}
}
return 0;
}

求采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
m358807551
2013-06-17 · 超过17用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:27.1万
展开全部
问题呢??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
叶片舟
2013-06-17 · TA获得超过652个赞
知道小有建树答主
回答量:285
采纳率:100%
帮助的人:316万
展开全部
//不知道你的数组干什么用的
#include "stdio.h"
struct node
{
int x; //公鸡
int y; //母鸡
int z; //小鸡
};

int main()
{
struct node data;

for(data.x=1;data.x<=20;data.x++)
{
for(data.y=1;data.y<=33;data.y++)
{
   for(data.z=3;data.z<=99;data.z+=3)
   {
if((5*data.x+3*data.y+data.z/3==100)&&(data.x+data.y+data.z==100))/*是否满足百钱和百鸡的条件*/            
printf("cock=%d,hen=%d,chicken=%d\n",x,y,z);
   }
}
}

return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式