用100块钱去买100只鸡,公鸡5元一只,母鸡3元一只,小鸡一元三只,怎么买? 20

最好有算法... 最好有算法 展开
 我来答
bubblegon
2015-03-08 · TA获得超过372个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:134万
展开全部
分别令公鸡,母鸡,小鸡数为x,y,z.则有:
x+y+z=100,5x+3y+1/3z=100,并且x,y,z均为非负的整数。

解法一:(如果楼主没有学过C语言), 则该问题可以通过压缩未知数范围再试数解出来。
该问题有三个未知数,却只能列出两个方程,说明问题可能有多解,并且须利用x,y,z均为整数这个条件来试数。

具体操作如下:
先分别假设只有公鸡,母鸡或者小鸡其中的一种,则由第二个方程能得知它们可能的最大数目分别为(取整):x=20,y=33,z=300.将两方程合并,消去x,得:y+7/3z=200,即y=200-7/3z。
由 0<y<=33 和 0<y+z<=100 可得 0<200-7/3z<33, 0<200-4/3z<=100 即 75<=z<86,而z为3的整数倍,在这个范围里能被3整除的有75、78、81、84这几个,现在一个个试数就很简单了。
将z值代入y=200-7/3z求得y,再由x=100-y-z求得x:

z=75,y=25,x=0;
z=78,y=18,x=4;
z=81,y=11,x=8;
z=84,y=4,x=12

至此,该问题的四组解全部求出,
即公鸡数,母鸡数,小鸡数分别为:
0、25、75或者
4、18、78或者
8、11、81或者
12、4、84.

2. 解法二:(如果楼主学过C程序言),则该问题可以在Turbo C上编译出C程序,由程序自动计算出结果,这种方法超级简单!

具体程序如下:

#include "stdio.h"
void main()
{
int a=0,b,c;
while(a<=19)
{
b=0;
while(b<=33)
{
c=3*(100-5*a-3*b);
if(a+b+c==100)
printf("%d %d %d\n",a,b,c);
b++;
}
a++;
}
getch();
}
程序运行结果与第一种方法完全吻合!
a b c;
0 25 75;
4 18 78;
8 11 81;
12 4 84.

打了半天字,累死了,楼主满意的话把分给我吧。谢谢了!以后如果还有什么数学问题可以找我!
百度网友9b7032f81
2010-08-20 · TA获得超过606个赞
知道小有建树答主
回答量:404
采纳率:0%
帮助的人:284万
展开全部
公鸡x只,母鸡y只,小鸡z只
得出不等式
20>x>0
30>y>0
100>z>0
方程组:
(1)5x+3y+z/3=100=>15x+9y+z=300
(2)x+y+z=100=>z=100-x-y
2带入1
15x+9y+100-x-y=300=>14x+8y=200=>7x+4y=100=>y=(100-7x)/4=>y=25-7x/4

y为整数,所以x必须是4的倍数
由于20>x>0
所以x的可能取值:
0。4。8。16。20
x=0,y=25,z=75
x=4,y=18,z=78
x=8,y=11,z=81
x=16,y=-3...下面不要算了

上面三组应该是所有正确答案。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
路国酷牌雕19
2013-02-26
知道答主
回答量:6
采纳率:0%
帮助的人:8803
展开全部
公鸡x只,母鸡y只,小鸡z只
得出不等式
20>x>0
30>y>0
100>z>0
方程组:
(1)5x+3y+z/3=100=>15x+9y+z=300
(2)x+y+z=100=>z=100-x-y
2带入1
15x+9y+100-x-y=300=>14x+8y=200=>7x+4y=100=>y=(100-7x)/4=>y=25-7x/4
y为整数,所以x必须是4的倍数
由于20>x>0
所以x的可能取值:
0。4。8。16。20
x=0,y=25,z=75
x=4,y=18,z=78
x=8,y=11,z=81
x=16,y=-3...下面不要算了
上面三组应该是所有正确答案
觉得可以的鼓励哈嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7137a07
2010-09-02
知道答主
回答量:18
采纳率:0%
帮助的人:8.3万
展开全部
如果你懂计算机的话给你这个程序相信你能懂
#include "stdio.h"

int main()
{
int male;
int female;
int baby;

for(male=0;male<100/5;male++)
for(female=0;female<100/3;female++)
for(baby=0;baby<100;baby+=3)
{
if(male+female+baby == 100 && 5*male+3*female+baby/3 == 100)
printf(" cock hen baby\n %d %d %d",male,female,baby)
}
}
(复制过来的程序,有格式错误的话我没看。呵呵)
如果你不是学计算机的那么我用两个三元一次方程来解决这个问题
下面为了方便我不写出XYZ 只写行列式
1 1 1 100
3 5 1/3 100

1 1 1 100
9 15 1 300

8 14 0 200
1 1 1 100

4 7 0 100

然后得到4x+7y=100这个方程
由于是xyz整数,所以x=18,y=4
或x=11,y=8
或x=4,y=12.
x就是母鸡,y就是公鸡。z就是小鸡,
可以套用 x+y+z=100这个方程解出来。
最后结果是
78只小鸡,18只母鸡,4只公鸡
78+18+4=100
78/3+18*3+4*5=100

或者81只小鸡,11只母鸡,8只公鸡
81+11+8=100
81/3+11*3+8*5=100

或者84只小鸡,4只母鸡,12只公鸡
84+4+12=100
84/3+4*3+12*5=100
(打完字才看到有这么多回答,呵呵。)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
猫的开心
2010-08-20 · 超过10用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:36万
展开全部
很简单,设公鸡X只,母鸡Y只,小鸡Z只;但只需满足7X+4Y=100就行了。代入数值,X取8 Y取11 ,ok.此时还剩27元钱,可买81只小鸡。
结论:8只公鸡,11只母鸡,81只小鸡。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(13)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式