1. 程式人生 > >經典演算法題:百錢買百雞

經典演算法題:百錢買百雞

百錢買百雞的問題算是一套非常經典的不定方程的問題,題目很簡單:公雞5塊錢一隻,母雞3塊錢一隻,小雞3只一塊錢,
用100快錢買一百隻雞,其中公雞,母雞,小雞都必須要有,問公雞,母雞,小雞要買多少隻剛好湊足100塊錢。
分析:我們可以設公雞為x,母雞為y,小雞為z,那麼我們
         可以得出如下的不定方程,
         x+y+z=100,
        5x+3y+z/3=100,
        下面再看看x,y,z的取值範圍。
        由於只有100塊錢,則z一定是3的倍數且小於100, 同理  0<y<33,那麼x=100-z-y,

        好,我們已經分析清楚了,下面就可以編碼了。

for z=3:3:100
    for y=1:33
     x=100-z-y;   
if x>0&&5*x+3*y+z/3==100
    sprintf('公雞=%d,母雞=%d,小雞=%d',x,y,z)
end
    end
end

輸出結果: