java经典算法题——猴子吃桃

一个猴子摘了一堆桃子,第一天吃了桃子的一半后又吃了一个,第二天也吃了剩下的桃子的一半后又吃了一个,以此吃下去,到了第十天还剩下一个桃子,问当初猴子总摘了多少个桃子?提示:倒推计算

public class Monkey
{
public static void main(String[] args)
{
int sum=0,remain=1;
//每天吃剩的桃子加一个正好是前一天桃子的一半,每天桃子的总数就是前一天剩下桃子的数量
for(int day=9;day>=1;day--)
{
sum=(remain+1)*2;
remain=sum;
System.out.println("第"+day+"天还剩"+remain+"个桃子");
}
System.out.println(sum);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-15
main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
x2=x1;
day--;
}
print("the total is "+x1);
}
第2个回答  2018-07-25
/*
* 一个猴子摘了一堆桃子,第一天吃了桃子的一半后又吃了一个,
* 第二天也吃了剩下的桃子的一半后又吃了一个,以此吃下去,到了第十天还剩下一个桃子,
* 问当初猴子总摘了多少个桃子?提示:倒推计算
*/
package com.test3;
public class Zuoye1 {
public static void main(String[] args) {
//每天吃剩的桃子加一个正好是前一天桃子的一半,每天桃子的总数就是前一天剩下桃子的数量
//sum代表当天剩下的总桃子树
int sum=1,remain=1;
for(int day=9;day>=1;day--) {
remain=(sum+1)*2;
sum=remain;
System.out.println("第"+day+"天还剩"+remain+"个桃子");

}

System.out.println("猴子当初共有桃子为:"+sum);
}
}
第3个回答  2018-07-17
递归运算方式
public static void main(String[] args) {
System.out.println(eat(10));
}
public static int eat(int day){
if(day==1){
return 1;
}else{
return (eat(day-1)+1)*2;
}
}
第4个回答  2017-12-05
public static void main(String args[]){
int t=1;

for(int i=1;i<10;i++){
t=(t+1)*2;

}
system.out.println("共摘了%d个桃",t);

}
相似回答