使用Java怎么实现一个猴子吃桃问题算法

  介绍

使用Java怎么实现一个猴子吃桃问题算法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>猴子吃桃问题

概述:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个;第二天又将剩下的桃子吃掉了一半,又多吃了一个;以后每天都吃前一天身下的一半零一个,到第N天再想吃的时候就只剩下一个桃子了,求第一天共摘了多少个桃子?

思路及演算步骤(求出共摘多少桃子的函数表达式):

离现在的天数作为变量

f(1)=1(剩下桃子的数目)
(2)=f(3) -(吃掉了一些)=,,f (3) - (f (3)/2 + 1),,=,,f (3)/2 - 1
....
f (n)=f (n + 1)/2 - 1(递推公式)

所以可以得到递推公式:

f (n - 1)=f (n)/2-1 ,=祝辞,2 f (n - 1)=,f (n) - 2,=比;f (n)=2 f (n - 1) + 2(这是我们想要的公式)

然后可以求出离现在任何天数时,猴子共摘下的桃子!

例如f(10)意思就是离现在10天的时候(10天以前猴子拥有的桃子的个数)!

<强>下面给出具体的代码:

package  javastudy;   import  java.util.Scanner;   public  abstract  class  Testit2  {//才能,猴子吃桃问题   public 才能;static  void  main (String [], args), {   ,,,Scanner 拷贝=,new 扫描仪(系统);   ,,,int  n;   ,,,n =, in.nextInt ();   ,,,System.out.println (f (n));   ,,,in.close ();   ,,}   static 才能;int  f (int  n), {   ,,,if  (==n  1),,,//离现在只有一天的时候那就只剩下一个!   ,,,return  1;   ,,,return  2, *, f (n 安康;1),+,2;   ,,}   }

看完上述内容,你们掌握使用Java怎么实现一个猴子吃桃问题算法的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

使用Java怎么实现一个猴子吃桃问题算法