• 技术文章 >Java >java教程

    Java中猴子吃桃问题算法实现的示例

    黄舟黄舟2017-10-18 10:24:19原创1149
    这篇文章主要介绍了Java实现的猴子吃桃问题算法,简单描述了猴子吃桃问题并结合实例形式给出了java解决猴子吃桃问题的具体实现技巧,需要的朋友可以参考下

    本文实例讲述了Java实现的猴子吃桃问题算法。分享给大家供大家参考,具体如下:

    猴子吃桃问题

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

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

    离现在的天数作为变量

    f(1) = 1 (剩下桃子的数目)
    f(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 => 2f(n-1) = f(n) - 2 => f(n)=2f(n-1) +2 (这是我们想要的公式)

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

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

    下面给出具体的代码:


    package javastudy;
    import java.util.Scanner;
    public abstract class Testit2 {
      // 猴子吃桃问题
      public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        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中猴子吃桃问题算法实现的示例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Java 实现 算法
    上一篇:Java静默加载Class实现的示例代码 下一篇:Java实现扫描包的工具类的实例
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 一起来聊聊与Java中性能相关的设计模式• Java图文详解之实现图书管理系统• JAVA外观模式详解• 详细整理java枚举的使用总结• 带你搞懂JAVA反射机制(总结分享)
    1/1

    PHP中文网