请输入您要查询的百科知识:

 

词条 百鸡百钱
释义

我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

百鸡百钱

我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

详解

答:鸡翁一值钱五——公鸡五文一只,而现在百钱买百鸡(100文钱买鸡),所以公鸡数量要至少小于20。

解:设母鸡x只,公鸡y只,小鸡(100-x-y)只,

所以3x+5y+(100-x-y)/3=100

且x,y为整数,所以可以得出正确答案:

化简:9x+15y+(100-x-y)=300

有三种情况符合要求:

1.公鸡4只,母鸡18只,小鸡78只

2.公鸡8只,母鸡11只,小鸡81只

3.公鸡12只,母鸡4只,小鸡84只

水仙花数

clear

for m=100 to 999

a=m%10

b=int(m/100)

c=int(mod(m,100)/10)

if m=a^3+b^3+c^3

?m

endif

endfor

return

一元二次方程(所有的情况均在内)

set talk off

clear

input'a='to a

input'b='to b

input'c='to c

if a=0

if b=0

?'此方程无解'

else

x=-c/b

?此方程有单根:',x

endif

else

delt=b^2-4*a*c

if delt<0

? '此方程无实根'

else

r=sqrt(delt)

x1=(-b+r)/(2*a)

x2=(-b-r)/(2*a)

?'此方程的根为:',x1,x2

endif

endif

return

百元百鸡

set talk off

for x=0 to 33

for y=0 to 50

if 3*x+2*y+0.5*(100-x-y)=100 then

?x,y,100-x-y

endif

endfor

endfor

3文一公鸡,2文一母鸡,1文3小鸡

var

a,b,c:integer;

begin

for a:=1 to 100 do

for b:=1 to 100 do

for c:=1 to 100 do

if(c mod 3=0)and(a*3+b*2+c div 3=100)and(a+b+c=100)

then writeln(a:4,b:4,c:4)

end.

Private Sub Command1_Click()

Dim a As Integer, b As Integer, c As Integer, i As Integer

For a = 1 To 100

For b = 1 To 100

For c = 1 To 100

If a + b + c = 100 And a * 5 + b * 3 + c * 0.5 = 100 Then

i = i + 1

End If

Next c

Next b

Next a

msgbox "有"+ i + "个方案"

End Sub

我国古代数学家张邱建编《张邱建算经》中记有有趣的数学问题:“今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。凡百钱,买鸡百只,问鸡翁、母、雏各几何?”用QBASIC程序解此问题。

有一种思路,即:

公鸡(鸡翁)不能超过20只,母鸡不能超过33只,小鸡不能超过300只。所以只要用3个计数变量控制循环即可。

rooster=1

hen=1

chick=1

DO

DO

DO

money = rooster*5 + hen*3 + chick/3

IF money = 100 THEN

PRINT rooster, hen, chick

END IF

chick=chick+1

LOOP UNTIL chick>300

hen = hen+1

chick = 1

LOOP UNTIL hen> 33

rooster = rooster+1

hen = 1

LOOP UNTIL rooster>20

END

另一个注脚就是题中的隐含条件,鸡雏一定是3的倍数,那么鸡雏就应该是3为步进值而不是1。事实上鸡雏的循环最多也只有101次,考虑0的情况。但既是百钱买百鸡,鸡雏的个数绝不可能超过一百只。而且三者的总和是100。以上程序只要两个循环就够了。

rooster=0

DO

hen=0

DO

money = rooster*5 + hen*3 + (100-rooster-hen)/3

IF money = 100 THEN

PRINT rooster, hen, (100-rooster-hen)

END IF

if money >100 then

rooster=rooster+1

hen=0 //这儿让其重新循环开始。

end if

hen = hen+1

LOOP UNTIL hen>33

rooster = rooster+1

LOOP UNTIL rooster> 19

END

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/22 14:29:57