题目:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
思路:每一天都会吃掉前一天的一半再多吃一个,那么前一天就是后面一天数量的二倍还多两个,注意是两个!
举例:
假设第一天有10个,那么当天会吃掉10/2+1 = 6个
那么第二天还剩4个 (4 * 2+2=10),这天会吃掉 4/2+1 = 3个
还剩 1个(1*2+2=4)
代码:
public class work101 { public static void main(String[] args) { int day = 1; // 天数,倒着数 int thatDay = 1; //当天的 int theDayBefore = 0; //前一天的 while (day < 10) { theDayBefore = thatDay * 2 + 2; day++; thatDay = theDayBefore; } System.out.println("第一天有:" + theDayBefore + "个桃"); } }
运行结果:
第一天有:1534个桃