public void monkey() {
int count1 = 0;
int count2 = 1;// 第20天只剩下1个
int day = 0;
for (int i = 20; i > 0; i--) {// 有19天都满足这种循环,从后往前推
count1 = (count2 + 1) * 2;// 前一天的数量是后一天多1的两倍
count2 = count1;
}
System.out.println("第1天的桃子数是:" + count1);
}
逆过来算啊
你想啊 第二十天是一个
第十九天 v19 =( 1+1)*2
第十八天 v18 = (v19 +1) *2
………………
第1天(v2 +1)*2
咱们这个题的前提是还没吃当天的,啥意思 第二十天生一个是第二十吃呢 也就是说第一天的(v2+1)是第一天还没吃的 也就是摘下的 不知道你是否明白我的意思
至于代码问题你可以这样写:
public class EatPeach
{
private int numPeach=1;
public void calulatePeach() {
for(int day = 2;day <= 20;day++)
{
numPeach = (numPeach +1)*2;
}
System.out.println(numPeach);
}
public static void main(String[] args) {
new EatPeach().calulatePeach();
}
}
public class Caculate {
public int getTotal(int n){
if(n>20) return 0;
if(n<1) return 0;
if(n==20) return 1;
return 2*(getTotal(n+1) + 1);
}
public static void main(String args[]){
Caculate caculate = new Caculate ();
System.out.println("total:" + caculate.getTotal(1));
}
}