题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
吃桃子非递归写法:
//吃桃子非递归写法
//day 当前天数
//cur 当天的桃子数量
//peach 第十天的桃子数量
public class test2 {
public static void main(String[] args) {
eat();
}
public static void eat() {
int day=9;
int peach=1;
int cur=0;
while(day>0) {
cur=(peach+1)*2;
peach=cur;
day--;
}
System.out.println(peach);
}
吃桃子递归写法:
public class test2 {
public static void main(String[] args) {
//传入的参数 day 代表第几天
//当前天数前一天的桃子数量就是 (当天的桃子数量+1)*2
System.out.println(eat(1));
System.out.println(eat(9));
System.out.println(eat(10));
}
public static int eat(int day) {
if(day<0) {
return 0;
}
if(day==10) {
return 1;
}
return (eat(day+1)+1)*2;
}
}