问题 :
现在有100块钱,公鸡一只5块钱,母鸡一只3块钱,小鸡1块钱三只,现在用100元买100只鸡,有多少种买法?
分析 :
题中一共有三个未知数,传统方法不太好解决,可以用枚举法。
1. 设买公鸡,母鸡和小鸡的个数分别为 i,j,k个
2. 如果100元全部都买公鸡,最多能买20只,所以第一个循环 i 的范围最大是20;
3. 如果100元全部都买母鸡,最多能买33只,所以第一个循环 j 的范围最大是33;
4. 小鸡的数量 k = 100 - i - j ;
5. 枚举出买各种鸡的个数,算出总价格是否等于100
6. 条件 : 5i + 3j + k/3 == 100 && k % 3 == 0
代码如下:
public class A {
public static void main(String[] args) {
for (int i = 0; i <= 20; i++) {
for (int j = 0; j <= 33; j++) {
for (int k = 0; k <= 100; k++) {
if (i * 5 + j * 3 + k / 3 == 100 && i + j + k == 100 && k % 3 == 0) {
System.out.println("公鸡" + i + "只,母鸡" + j + "只,小鸡" + k + "只");
}
}
}
}
}
}
运行截图:
注意:
题目中隐含条件,小鸡的数量必须是3的倍数,所以 k % 3 == 0;必不可少!