java经典算法|猴子吃桃问题

问题描述

      猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

问题分析

      这个题按天数来计算,第10天的时候只剩下1个桃子,前9天每天都吃桃子总数的一半多一个,也就是sum/2 + 1,回退计算:前一天总桃子数 = (当前桃子总数 + 1) *2

代码实现

public class MonkeyEatingPeach {
    public static void main(String[] args) {
    	//第10天的桃子数是1个
        int sum = 1;
        for (int i = 10; i > 1; i--) {
            //每天剩下的桃子数
            sum = (sum + 1) * 2;
        }
        //输出总的桃子数
        System.out.println(sum);
    }
}

运行结果

猴子吃桃问题运行结果

posted @ 2021-09-07 14:30  Evan-LiuXing  阅读(128)  评论(0编辑  收藏  举报