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

 更新时间:2017年10月17日 11:05:42   作者:弗兰随风小欢  
这篇文章主要介绍了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算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • SpringBoot的父级依赖:spring-boot-starter-parent详解

    SpringBoot的父级依赖:spring-boot-starter-parent详解

    SpringBoot通过父级依赖spring-boot-starter-parent实现项目快速构建,它依赖于spring-boot-dependencies来统一管理项目中的依赖版本,省去了手动指定版本信息的麻烦,这种机制不仅规定了默认的Java版本和编码格式
    2024-09-09
  • 详解前后端分离之Java后端

    详解前后端分离之Java后端

    这篇文章主要介绍了详解前后端分离之Java后端,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • springboot接收日期类型参数的操作方法

    springboot接收日期类型参数的操作方法

    如果使用Get请求,直接使用对象接收,则可以使用@DateTimeFormat注解进行格式化,本文重点给大家介绍springboot接收日期类型参数的方法,感兴趣的朋友一起看看吧
    2024-02-02
  • java中删除数组中重复元素方法探讨

    java中删除数组中重复元素方法探讨

    这个是一个老问题,但是发现大多数人说的还不够透。小弟就在这里抛砖引玉了,欢迎拍砖
    2013-10-10
  • 详解Java sort()数组排序(升序和降序)

    详解Java sort()数组排序(升序和降序)

    这篇文章主要介绍了详解Java sort()数组排序(升序和降序),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • idea 在springboot中使用lombok插件的方法

    idea 在springboot中使用lombok插件的方法

    这篇文章主要介绍了idea 在springboot中使用lombok的相关资料,通过代码给大家介绍在pom.xml中引入依赖的方法,本文给大家介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • Java数据结构及算法实例:冒泡排序 Bubble Sort

    Java数据结构及算法实例:冒泡排序 Bubble Sort

    这篇文章主要介绍了Java数据结构及算法实例:冒泡排序 Bubble Sort,本文直接给出实现代码,代码中包含详细注释,需要的朋友可以参考下
    2015-06-06
  • java正则表达式匹配规则超详细总结

    java正则表达式匹配规则超详细总结

    正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别,下面这篇文章主要给大家介绍了关于java正则表达式匹配规则的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • SpringBoot导入mail依赖报错问题解决

    SpringBoot导入mail依赖报错问题解决

    这篇文章主要介绍了SpringBoot导入mail依赖报错问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • IDEA让包分层显示的实现方式

    IDEA让包分层显示的实现方式

    这篇文章主要介绍了IDEA让包分层显示的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02

最新评论