猴子摘桃问题
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少个桃子?
方法一:循环法
public class Main {
public static void main(String[] args) {
int day=10;
int total=0;
total=add1(day);
System.out.println(total);
}
public static int add(int x){
int num=0;
int temp=1;
for(int i=1;i<x;i++){
num=(temp+1)*2;倒数第二天为倒数第一天加1的和乘2
temp=num;
}
return num;
}
}
方法二:递推法
public class Main {
public static void main(String[] args) {
int day=10;
int total=0;
total=add1(day);
System.out.println(total);
}
public static int add1(int x){
int total=1;
if(x>1){
total=(add1(x-1)+1)*2;
}
else{
return 1;
}
return total;
}
}