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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);

参考技术A 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);
参考技术B /*
* 一个猴子摘了一堆桃子,第一天吃了桃子的一半后又吃了一个,
* 第二天也吃了剩下的桃子的一半后又吃了一个,以此吃下去,到了第十天还剩下一个桃子,
* 问当初猴子总摘了多少个桃子?提示:倒推计算
*/
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);

参考技术C 递归运算方式
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;

参考技术D 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);

以上是关于java经典算法题——猴子吃桃的主要内容,如果未能解决你的问题,请参考以下文章

Java经典编程题50道之十七

Java重写《C经典100题》 --21

JAVA常见算法题(十六)

初中递归题

算法——猴子分桃

经典C语言面试算法题