词条 | 百鸡百钱 |
释义 | 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? 百鸡百钱我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? 详解答:鸡翁一值钱五——公鸡五文一只,而现在百钱买百鸡(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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。