经典算法题:百钱买百鸡

百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡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

输出结果:


猜你喜欢

转载自blog.csdn.net/sinat_38151275/article/details/80002660