python_百文買百雞問題


百文買百雞問題

        -- 不定方程

       -- 公雞5文錢一只,母雞3文錢一只,小雞3只一文錢,用100文錢買100只雞,如何買?

       -- 列出方程式

              x + y + z = 100

              5x + 3y + z/3 =100

       如何用計算機來算?

  -- 計算機並不會消元法,但是計算機會拼,把數一個個代入進去,然后再計算,滿足條件輸個結果

  -- 如何邏輯整理?

         全買公雞最多 20 只

         全買母雞不可能,必須搭配小雞買    33只母雞和 3只小雞

         全買小雞可以買300只

       題目要求,雞的個數正好是100只

  -- 如何程序化?

         -- 先從買1只公雞開始,然后買1只母雞,剩下錢全部買小雞,看滿不滿足100只雞,

      不滿足的話,那就執行下一步

         -- 先從買1只公雞開始,然后買2只母雞,剩下錢全部買小雞,看滿不滿足100只雞

      不滿足的話,母雞數在加1,直到33,但是買了一只公雞的情況下,

      不可能買到33只母雞,也不可能買到20只公雞

         -- 然后公雞數目加1,再從1只母雞買起,剩下錢買小雞,依次循環下去

  會發現一個有趣的問題,公雞數目加1,母雞就必須從1加到33,那就說明要用到兩層循環,

  還要進行條件判斷,判斷錢是不是正好加起來等於100文,不就解決了這個問題了

  程序化:

#!/usr/bin/python3

__author__ = 'beimenchuixue'
__blog__ = 'http://www.cnblogs.com/2bjiujiu/'


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('公雞:%s 母雞:%s 小雞:%s'%(x, y, z))

 

  

 

  


免責聲明!

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



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