0
点赞
收藏
分享

微信扫一扫

“百元买百鸡“(Java for循环实现)

豆丁趣 2022-03-17 阅读 63

问题 :

现在有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;必不可少!

举报

相关推荐

0 条评论