猴子吃桃问题

rooftop64 2009-09-04 08:36:15
一只猴子第一天摘下若干个桃子,当即吃了一半,不过瘾,又多吃了一个。第二天又将剩下的桃子吃了一半,又多吃了一个。以后每天都吃了前一天剩下的一半零一个。第10天再想吃时,发现只剩下一个桃子。请问第一天猴子共摘了多少桃子?
...全文
630 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
清竹小雨 2012-06-20
  • 打赏
  • 举报
回复
public class MonkeyEatTomato {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

useLoop();

int count = 1;

count = useRecurrent(10);

System.out.println("cou" + count);


}

public static void useLoop()
{
int tomato = 1;
int days = 10;

for(int i = 1; i < days; ++i)
{
tomato = (tomato + 1) * 2;
}

System.out.println(tomato);
}

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

}
sssschenyi 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gesanri 的回复:]
Java codepublicclass Monkey {publicstaticvoid main(String args[]){int sum=1;for(int i=1; i<10; i++)
sum= (sum+1)*2;
System.out.println(sum);
}
}
[/Quote]


强大
bigbug9002 2009-09-04
  • 打赏
  • 举报
回复
用循环就这样写是不是容易理解?
public class Test{
public static void main(String args[]) {
int peach=totalPeach();
System.out.println(peach);

}
public static int totalPeach(){
int sum=1; //第10天的桃子数;
for(int day=9;day>=1;day--){
sum=(sum+1)*2;
}
return sum;
}
}


循环和递归都可以,循环效率高一些。
cqhweb 2009-09-04
  • 打赏
  • 举报
回复
早在N年前学校做的题目了.
  • 打赏
  • 举报
回复
7楼的算法的确很爽心悦目
xiyushuo 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gesanri 的回复:]
Java codepublicclass Monkey {publicstaticvoid main(String args[]){int sum=1;for(int i=1; i<10; i++)
sum= (sum+1)*2;
System.out.println(sum);
}
}
[/Quote]
好办法。。。我和不少人一样都想到递归了- - 这个方法确实简单易行
zhoumin25157748 2009-09-04
  • 打赏
  • 举报
回复
支持七楼,这个不就是个递归调用的问题吗。。。。。。
浴火涅磐 2009-09-04
  • 打赏
  • 举报
回复
是1534个
sjkof 2009-09-04
  • 打赏
  • 举报
回复
支持7楼
bigbug9002 2009-09-04
  • 打赏
  • 举报
回复
public class Test{
public static void main(String args[]) {
int peach=totalPeach(1);
System.out.println(peach);

}
public static int totalPeach(int day){
if(day==10){
return 1;
}
return 2*(totalPeach(day+1)+1);
}
}
gesanri 2009-09-04
  • 打赏
  • 举报
回复

public class Monkey {
public static void main(String args[]){
int sum = 1;
for(int i = 1; i < 10; i++)
sum = (sum + 1) * 2;
System.out.println(sum);
}
}
rooftop64 2009-09-04
  • 打赏
  • 举报
回复
回3楼,不是大赛题。是《Java编程哪些事儿》里面的练习题
  • 打赏
  • 举报
回复
又是大赛题??


顶楼上
zhoujingxian 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhoujingxian 的回复:]
1434个
[/Quote]

写错了,应该是1534个,


package com.potevio.telecom.simple;

public class MonkeyEatPeach {

/**
* @param args
*/
public static void main(String[] args) {
int totalpeach = 0;
int day = 10;
int lastdaypeach = 1;
totalpeach = totalPeach(10,1);
System.out.println(totalpeach);
}

private static int totalPeach(int day,int lastdaypeach){
int total = 0;
int loopnum = day - 1;
int temp = lastdaypeach + 1 ;
for(int i = 0 ; i < loopnum ; i++){
total = temp * 2;
temp = total+1;
System.out.println(total);
}
return total;
}
}

zhoujingxian 2009-09-04
  • 打赏
  • 举报
回复
1434个

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧