Python百文百雞問題

公雞5文錢一隻,母雞3文錢一隻,小雞3只一文錢,用100文錢買100只雞,該怎樣買?

首先看一下用數學方法的解題過程:
在這裏插入圖片描述
我們可以列出關鍵的方程式

x + y + z = 100
5x + 3y + z/3 =100

接下來我們看一下怎麼樣能讓這個問題程序化:
理一下思路,我們先從買1只公雞開始,然後買1只母雞,剩下錢全部買小雞,看滿不滿足100只雞,不滿足的話,那就執行下一步,買1只公雞,然後買2只母雞,剩下錢全部買小雞,看滿不滿足100只雞,不滿足的話,母雞數再加1,直到33,但是買了一隻公雞的情況下不可能買到33只母雞,也不可能買到20只公雞,然後公雞數目加1,再從1只母雞買起,剩下錢買小雞,依次循環下去,會發現一個有趣的問題,公雞數目加1,母雞就必須從1加到33,那就說明要用到兩層循環,還要進行條件判斷,判斷錢是不是正好加起來等於100文,不就解決了這個問題了。

for x in range(1, 20):                      # 從1開始買公雞,不包括20
    for y in range(1, 33):                  # 從1開始買母雞,不包括33
        z = 100 - x - y                     # 計算剩餘要買多少個小雞,小雞的個數要滿足3的倍數
        if z%3 == 0 and 5*x+3*y+z//3 == 100:     # 判斷買的計劃是否符合條件
            print('公雞:{}  母雞:{}  小雞:{}'.format(x,y,z))

結果如下圖:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章