PythonStudy_‘百元買百雞’代碼


  百雞問題是一個數學問題,出自中國古代約5—6世紀成書的《張邱建算經》,是原書卷下第38題,也是全書的最后一題。該問題導致三元不定方程組,其重要之處在於開創“一問多答”的先例。

    題:今有雞翁一,值錢伍;雞母一,值錢三;雞鶵三,值錢一。

    問:凡百錢買雞百只,問雞翁、母、鶵各幾何?

    解:x+y+z=100;5x+3y+z/3=100

  代碼實現:

  1、使用while嵌套循環。注意變量初值設置,以及循環條件。

#coding=utf-8
chickNum=[['公雞','母雞','小雞']]

#公雞5元一只,數量x不大於20
x=0
while x<=20 :

#    母雞3元一只,數量y不大於30
    y=0
    while y<=30 : 
        
#    共買100只雞
        z=100-x-y
#        小雞數量z為3的整數,且5x+3y+z/3=100
        if z%3==0 and 5*x+3*y+z/3==100  :
        
#            將符合條件的答案添加到列表
            chickNum.append([x,y,z])
        y+=1
    x+=1

#打印解題結果
print('\'百元買百雞\'共有%d種方案:'%(len(chickNum)-1))
print()
for i in chickNum :    
    for j in i :
        print(j,end='\t')
    print()
View Code

  2、使用for循環。更簡潔、明了。

#coding=utf-8
chickNum=[['公雞','母雞','小雞']]

#公雞5元一只,數量x不大於20
for x in range(0,20) :

#    母雞3元一只,數量y不大於30
    for y in range(0,30) : 
        
#    共買100只雞
        z=100-x-y
#        小雞數量z為3的整數,且5x+3y+z/3=100
        if z%3==0 and 5*x+3*y+z/3==100  :
        
#            將符合條件的答案添加到列表
            chickNum.append([x,y,z])


#打印解題結果
print('\'百元買百雞\'共有%d種方案:'%(len(chickNum)-1))
print()
for i in chickNum :    
    for j in i :
        print(j,end='\t')
    print()
View Code

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM