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