一个编程的问题.!

来源:百度知道 编辑:UC知道 时间:2024/06/17 06:19:10
求答案.java语言编出来.!!!!!!!!!!!!猴子第一天摘下若干桃子.当即吃了一半.还不过瘾,又多吃了一个.第二天早上又将桃子吃掉一半又多吃勒一个.以后每天都吃了前一天的一半零一个.到第十天只剩下一个. 求第一天桃子的个数.
请用 while 或 do while做出来,!
第10天是没吃剩下一个!

这道题可以这样分析:

最后一天即第十天剩下的1个桃子是第九天吃剩的,可知第九天有桃子(1+1)*2 即4个桃子,而第九天的桃子也是第八天吃剩的 则第八天有桃子(((1+1)*2)+1)*2 即10个 依此类推。。。。。。

可以用递归来解决:F(1)=1 F(2)=(F(1)+1)*2 F(3)=2*(F(2)+1) ......

用Java编写一个方法:
public int monkey(int n){
if(n==1)
return 1;
else
return 2*(monkey(n-1)+1);
}

下面是完整的实例:
public class Test {

public static void main(String[] args) {

System.out.println("第一天有桃子 "+monky(10)+"个");

}

public static int monky(int n){
if(n==1)
return 1;
else
return 2*(monky(n-1)+1);
}

}

int day;
int x=1;
day=10;
while(day>0)
{
x=(x+1)*2;
day--;
}
System.out.println(x);

public int sum(int days){
int remain=1;
while(days>0){
remain=2*remain+1;
days--;
}
return remain;
}
public int sum(int d