猴子偷桃
有一群猴子,去偷了一堆桃子,
商量之后决定每天吃剩余桃子的一半,
当每天大家吃完桃子之后,有个贪心的小猴都会偷偷再吃一个桃子,
按照这样的方式猴子们每天都快乐的吃着桃子
直到第十天,当大家再想吃桃子时,发现只剩下一个桃子了
问: 最开始有多少个桃子?
递归方法
public class Test {
public static void main(String[] args) {
System.out.println(solution(1));
}
private static int solution(int day) {
//第十天只剩一个桃子,作为递归的终止条件
if (day==10){
return 1;
}
//每一天的桃子数量都是 (后一天的数量+1)*2
return (solution(day+1)+1)*2;
}
}
循环方法
public class Test {
public static void main(String[] args) {
System.out.println(solution());
}
private static int solution() {
//第十天桃子剩一个
int peach = 1;
for (int day = 9; day >= 1; day--) {
//每天桃子都是(后一天桃子+1)*2
peach = (peach + 1) * 2;
}
return peach;
}
}
结果
1534