猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,
又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃
时,见只剩下一个桃子了。求第一天共摘了多少。
//方法一:
public class Test{
//pn表示第n天桃子的数量
//p10 ==p9/2-1====>p9==(p10+1)*2 p10==1
//p9 ==(p10+1)*2
//p8 ==(p9+1)*2
//...
public static void main(String[] args){
int w=0;
for(int i=0;i<10;i++){
if(i==0){ //i==0表示第十天桃子的数量
w=1;
continue;
}
w=(w+1)*2;
}
System.out.println(w);
}
}
用递归的方法求猴子吃桃问题并用函数封装
//方法二:递归法
//n表示第n天的桃子数
public static int peach(int n){
if(n==10){
return 1;
}
return (peach(n+1)+1)*2;
}
public static void main(String[] args){
int p=peach(1);
System.out.println(p);
}