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);
}
}
运行结果
本文来自博客园,作者:Evan-LiuXing,转载请注明原文链接:https://www.cnblogs.com/liuxing98/p/17161525.html