【题目】
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,
又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
【分析】
第10天剩余桃子数量是1
说明猴子已经吃了9天桃子了
后一天桃子的数量是前一天桃子数量的
12?112?1
前一天桃子的数量是后一天桃子数量的(x+1)*2
所以采用逆序倒退的方法来循环求出:
第9天的桃子数量?
第8天的桃子数量?
……
第1天的桃子数量?
import java.util.*;
public class Lanq {
//1534
public static void main(String[] args) {
solve();
}
public static void solve() {
int ans=f2(1534,1);
System.out.println(ans);
}
public static int f(int n)
{
if(n==1)return 1;
else
return f(n-1)*2+2;
}
public static int f2(int sum,int d)//1,1534
{
if(sum==1)return d;
int left=(sum/2)+1;
sum=sum-left;
return f2(sum,d+1);
}
}