猴子搬香蕉问题

一百根香蕉,小猴子离家五十米,一次能拿50根香蕉,每1米吃一根,最多能有多少根香蕉搬回家?

此题我们可以这样考虑,由于猴子一次最多只能拿50根香蕉,那么当香蕉总数大于50根的时候,猴子就必须往返回起点再搬第二次,因此我们可以通过写一个循环来得出答案

public class Banana {
    public static void main(String[] args) {
        //m -- 猴子走的距离    n -- 香蕉的个数
        for (int m = 1, n = 100; m <= 50; m++) {
            //当香蕉个数>50时,猴子一趟搬不完需要往返
            // 去->回->去  往返一米要吃3根香蕉
            if (n>50){
                n = n-3;
                //当香蕉个数<50时,猴子一趟就可以搬完,此时一米吃一根香蕉
            }else {
                n--;
            }
            System.out.println("当走到"+m+"米时,所剩香蕉根数为"+n);
        }
    }
}

控制台打印如下

当走到1米时,所剩香蕉根数为97
当走到2米时,所剩香蕉根数为94
当走到3米时,所剩香蕉根数为91
...
...
当走到15米时,所剩香蕉根数为55
当走到16米时,所剩香蕉根数为52
当走到17米时,所剩香蕉根数为49
//此时的香蕉个数<50,后面再拿香蕉便不需要往返,一次-1
当走到18米时,所剩香蕉根数为48
当走到19米时,所剩香蕉根数为47
当走到20米时,所剩香蕉根数为46
...
...
当走到48米时,所剩香蕉根数为18
当走到49米时,所剩香蕉根数为17
当走到50米时,所剩香蕉根数为16

因此我们最终得到的结果为:最多能有16根香蕉搬回家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值