蓝桥杯备考随手记: practise05

问题描述:

5 只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第 1 只猴子醒来,把香蕉均分成 5 堆,还剩下 1 个,就吃掉并把自己的一份藏起来继续睡觉。
第 2 只猴子醒来,把香蕉均分成 5 堆,还剩下 2 个,就吃掉并把自己的一份藏起来继续睡觉。
第 3 只猴子醒来,把香蕉均分成 5 堆,还剩下 3 个,就吃掉并把自己的一份藏起来继续睡觉。
第 4 只猴子醒来,把香蕉均分成 5 堆,还剩下 4 个,就吃掉并把自己的一份藏起来继续睡觉。
第 5 猴子醒来,重新把香蕉均分成 5 堆,哈哈,正好不剩!

请计算一开始最少有多少个香蕉。

思路分析:

通过循环不断尝试不同的香蕉数量,每次计算猴子们分香蕉后剩下的数量是否符合题目描述的规则。具体步骤如下:

  1. 初始化香蕉数量为0;
  2. 进入一个无限循环;
  3. 计算每只猴子拿走一份后剩下的香蕉数量;
  4. 检查当前香蕉数量是否符合猴子们分香蕉的规则;
  5. 如果符合条件,跳出循环;
  6. 否则尝试下一个香蕉数量;
  7. 输出符合条件的最小香蕉数量。

代码实现:

public class Main {
    public static void main(String[] args) {
        int bananas = 0; // 初始香蕉数量

        while (true) {
            // 计算每只猴子拿走一份后剩下的香蕉数量
            int a = (bananas - 1) / 5 * 4;
            int b = (a - 2) / 5 * 4;
            int c = (b - 3) / 5 * 4;
            int d = (c - 4) / 5 * 4;

            // 检查是否符合猴子们分香蕉的规则
            if (bananas % 5 == 1 && a % 5 == 2 && b % 5 == 3 && c % 5 == 4 && d % 5 == 0 && d > 0) {
                break; // 找到符合条件的香蕉数量,跳出循环
            }

            bananas++; // 尝试下一个香蕉数量
        }
        System.out.println("一开始最少有 " + bananas + " 个香蕉");
    }
}
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值