3个回答
展开全部
“公鸡每只5元,母鸡每只3元,小鸡三只1元,现有100元,要求买100只鸡,公鸡、母鸡、小鸡各多少只?”
解题思路:公鸡每只5元,最多要少于20只;
母鸡每只3元,最多要少于33只;
小鸡至少要有3只。
小鸡三只1元,要凑够100元100只鸡。
公鸡数:cocks
母鸡数:hens
小鸡数:chickens
买公鸡钱数 = 5×cocks
买母鸡钱数 = 3×hens
买小鸡钱数 = 1/3 × chickens
cocks + hens + chickens = 100 (1)
5×cocks + 3×hens + 1/3× chickens=100 (2)
这个题目有三个未知数,但根据已知条件只能列出两个式子。
公鸡是每只5元,要想总数为100元,公鸡数必须是偶数。
母鸡和小鸡一个是三元1只,一个是一元三只,说明小鸡的个数必须是3的倍数,而母鸡的钱数必须是3的倍数。还有母鸡钱数的个位和小鸡钱数的个位的和要等于10。
尽管有这些条件的约束,但由于少一个条件,都有可能有多个解。
可以先定公鸡为cocks =1
如hens =21 chickens= 78
先保证 (1)式成立时
(2)=94
因为小鸡必须以三个为单位变化,减三个小鸡又必须增三个母鸡。而减三个小鸡少一元,增三个母鸡多9元,相差8元。
所以如hens =24 chickens= 75
则(2)=102
所以cocks 不能等于1
同样cocks 也不能等于2和3
当cocks=4时
如如hens =18 chickens= 78
能使(2)式成立
即cocks=4时 hens =18 chickens= 78
(1)、(2)式都成立。
同样方法试验可知
cocks=8时 hens =11 chickens= 81
(1)、(2)式都成立。
cocks=12时 hens =4 chickens= 84
(1)、(2)式都成立。
这个题目没有找到一般的解法,不知还有没有更好的解法。
既然是试验,可以编一个小程序来实现。
如用C语言的FOR循环来编,示例如下:
#include <stdio.h>
main()
{
int x, y, z;
for (x=0; x<20; x++)
for (y=0; y<33; y++)
{
z=100-x-y;
if ((z%3==0)&&(5*x+3*y+z/3==100))
printf("cock=%d\t hen=%d\t chicken=%d\n", x, y, z);
}
}
解题思路:公鸡每只5元,最多要少于20只;
母鸡每只3元,最多要少于33只;
小鸡至少要有3只。
小鸡三只1元,要凑够100元100只鸡。
公鸡数:cocks
母鸡数:hens
小鸡数:chickens
买公鸡钱数 = 5×cocks
买母鸡钱数 = 3×hens
买小鸡钱数 = 1/3 × chickens
cocks + hens + chickens = 100 (1)
5×cocks + 3×hens + 1/3× chickens=100 (2)
这个题目有三个未知数,但根据已知条件只能列出两个式子。
公鸡是每只5元,要想总数为100元,公鸡数必须是偶数。
母鸡和小鸡一个是三元1只,一个是一元三只,说明小鸡的个数必须是3的倍数,而母鸡的钱数必须是3的倍数。还有母鸡钱数的个位和小鸡钱数的个位的和要等于10。
尽管有这些条件的约束,但由于少一个条件,都有可能有多个解。
可以先定公鸡为cocks =1
如hens =21 chickens= 78
先保证 (1)式成立时
(2)=94
因为小鸡必须以三个为单位变化,减三个小鸡又必须增三个母鸡。而减三个小鸡少一元,增三个母鸡多9元,相差8元。
所以如hens =24 chickens= 75
则(2)=102
所以cocks 不能等于1
同样cocks 也不能等于2和3
当cocks=4时
如如hens =18 chickens= 78
能使(2)式成立
即cocks=4时 hens =18 chickens= 78
(1)、(2)式都成立。
同样方法试验可知
cocks=8时 hens =11 chickens= 81
(1)、(2)式都成立。
cocks=12时 hens =4 chickens= 84
(1)、(2)式都成立。
这个题目没有找到一般的解法,不知还有没有更好的解法。
既然是试验,可以编一个小程序来实现。
如用C语言的FOR循环来编,示例如下:
#include <stdio.h>
main()
{
int x, y, z;
for (x=0; x<20; x++)
for (y=0; y<33; y++)
{
z=100-x-y;
if ((z%3==0)&&(5*x+3*y+z/3==100))
printf("cock=%d\t hen=%d\t chicken=%d\n", x, y, z);
}
}
展开全部
package applet_test;
import javax.swing.*;
import java.awt.Container;
public class buy extends JApplet
{
public void init()
{
int a,b;
String output="";
JTextArea outputArea = new JTextArea( 10, 20 );
Container c = getContentPane();
c.add(outputArea);
for(a=1;a<20;a++)
{
for (b=1;b<33;b++)
{
if(a*5+b*3+(100-a-b)/2==100)
{
output+="\n公鸡:"+a+"只 母鸡:"+b+"只 小鸡:"+(100-a-b)+"只";
}
}
}
outputArea.setText( output );
}
}
正好前几天给朋友做过这个.
import javax.swing.*;
import java.awt.Container;
public class buy extends JApplet
{
public void init()
{
int a,b;
String output="";
JTextArea outputArea = new JTextArea( 10, 20 );
Container c = getContentPane();
c.add(outputArea);
for(a=1;a<20;a++)
{
for (b=1;b<33;b++)
{
if(a*5+b*3+(100-a-b)/2==100)
{
output+="\n公鸡:"+a+"只 母鸡:"+b+"只 小鸡:"+(100-a-b)+"只";
}
}
}
outputArea.setText( output );
}
}
正好前几天给朋友做过这个.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用PASCAL来编
var a,b,c:integer;
begin
for a:=1 to 99 do
for b:=1 to 99 do
for c:=1 to 99 do
begin
if (a+b+c<>100) or (c mod 2<>0) then continue;
if (a*5+b*3+c div 2=100) then writeln(a,' ',b,' ',c);
end;
end.
var a,b,c:integer;
begin
for a:=1 to 99 do
for b:=1 to 99 do
for c:=1 to 99 do
begin
if (a+b+c<>100) or (c mod 2<>0) then continue;
if (a*5+b*3+c div 2=100) then writeln(a,' ',b,' ',c);
end;
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询