100元怎么买100个蛋,鸡蛋1毛一个,鸭蛋3元一个,鹅蛋6元一个
解析:假设 鸡蛋:x个 鸭蛋:y个 鹅蛋:z个; 100元=1000毛
方程式:
1x+30y+60z=1000
x+y+z=100
x>0; y>0; z>0; 且均为整数。
x=100-y-z
29y-59z=900
y=(900-59z)/29
当z=1时;y=29;x=70;符合要求
当z=2时;y不能整除
…
…
计算所有符合条件的结果。
Egg 类的代码和上面分析有一定出入,但是意义一样。都需要满足如下条件
x>0; y>0; z>0; 且均为整数
x+y+z=100
1x+30y+60z=1000
该类,直接使用假设法
当x=1,y=1时;计算z的值是否符合要求
当x=1,y=2时;计算z的值是否符合要求
…
…
计算符合条件的结果。显然该类的方法不如上面解析后方法,但计算机的计算速度高到可以忽略它们的差异。
public class Egg {
public static void main(String[] args) {
int chicken = 0, duck = 0, goose = 0;
for (int i = 0; i < 100; i++) {
chicken = i;
for (int j = 0; j < 100; j++) {
duck = j;
goose = 100 - duck - chicken;
if (chicken + duck * 30 + goose * 60 == 1000 && chicken > 0 && duck > 0 && goose > 0) {
System.out.println("鸡:" + chicken + " 鸭:" + duck + " 鹅:" + goose);
}
}
}
}
}
输出:
鸡:70 鸭:29 鹅:1
Process finished with exit code 0