问题:每只母鸡3元,每只公鸡4元,每只小鸡0.5元,如果花费100元买100只鸡,有多少种方法?
解题思路:
1、母鸡,公鸡,小鸡分别设为 x, y, z
2、根据问题可得到如下两个等式
1)x + y + z = 100
2) 3x + 4y + 0.5z = 100
3、然后通过消元法可将其中两个变量用另一个变量的表达式来表示
我们这里用 z 的表达式来表示 x, y ,如下
1)x = 300 - 3.5z
2)y = 2.5z - 200
4、这样我们只需要知道 z 就能得到 x, y
我们通过在 z 的范围内遍历,计算出 x, y,再判断是否满足100元的条件就可了
5、z 的 范围
在不考虑100元的条件下只卖一种鸡
则:0 <= x <= 33, 0 <= y <= 25, 0 <= z <=200
将步骤3中的 x, y 代入
得 80 <= z <= 600/7
代码:
//母鸡数
int x = 0;
//公鸡数
int y = 0;
//小鸡数
int z = 80;
//在z的范围内计算出 x,y。并判断是否符合100元 的条件
while(z <= 600/7) {
//计算母鸡数
x = (int)(300 - 3.5*z);
//计算公鸡数
y = (int)(2.5*z - 200);
//判断是否满足100元的条件
if((3*x + 4*y + 0.5*z) == 100) {
System.out.println("母鸡:"+x+",公鸡:"+y+",小鸡"+z);
}
//要满足100元的条件,小鸡 不能单只买
z = z + 2;
}