• 猴子吃桃


    【需求/说明】:  一只猴子摘了一堆桃子,每天吃掉其中的一半然后再多吃一个,第二天则吃剩余的 一半然后再多吃一个,...直到第10天,猴子发现只有一个桃子了。问这只猴子在第一天摘了多少个桃子?

     【需求分析】:这只猴子共用了10天吃桃子,最后一天剩余1个桃子,要想求出第一天的桃子数,就要先求出第2天剩余的桃子数,...。假设an表示第n天剩余的桃子数量,n=1~10,则有如下关系:

      a1=(a2+1)x2;

      a2=(a3+1)x2;

        ......

      a9=(a10+1)x2;

      a10=1;

    从上述式子可知,只能通过倒推来求得第一天的桃子数。这在程序上就需要借助于递归算法。

    那么我们就可以编写一个算法用于计算猴子吃桃问题。算法的示例代码如下:


     

     1 /**
     2  * 
     3  */
     4 package edu.aeon.algorithm;
     5 
     6 import java.util.Scanner;
     7 
     8 /**
     9  * @author work
    10  * 创建于: 2017年10月17日 下午6:51:56
    11  * by lzj
    12  * 需求/说明: 
    13  * 某天一只猴子摘了一堆桃子,每天吃掉其中的一半然后再多吃一个,第二天则吃剩余的
    14  * 一半然后再多吃一个,...直到第10天,猴子发现只有一个桃子了。问这只猴子在第一
    15  * 天摘了多少个桃子?
    16  */
    17 public class MonkeyEatPeaches {
    18     //定义一个算法
    19     /**
    20      * 
    21      * at 2017年10月17日 下午6:57:55 by lzj
    22      * @parameters1 int n
    23      * @return int
    24      */
    25     private static int peache(int n) {
    26         return n > 1 ? (peache(n-1)+1)*2:1;
    27     }
    28     /**
    29      * at 2017年10月17日 下午6:51:56 by lzj
    30      * @parameters1 String[] args
    31      * @return void
    32      */
    33     public static void main(String[] args) {
    34         Scanner scan;
    35         do {
    36             System.out.println("请输入猴子吃桃的总天数:");
    37             scan=new Scanner(System.in);
    38             if(scan.hasNextInt()) {
    39                 System.out.println("猴子总共摘了:"+peache(scan.nextInt())+"个桃子!");
    40             } else {
    41                 System.out.println("输入错误!退出程序!"); 
    42                 return;
    43             }
    44         }while(true);
    45     }
    46 }
    单击"+"查看

    运行结果截图附上:

    如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

  • 相关阅读:
    LVS+keepalived DR模式配置 实现高可用集群
    lamp+redis集群配置详解
    Centos7.4+Mariadb集群-主从配置介绍
    centos6.5 LVS-DR模式---全内网环境
    Cacti安装使用&流量监控详解
    纯CSS模拟安卓滑动开关
    Java静态泛型方法使用例子-工具类
    基于KaliLinux的GNOME美化
    ArchLinux安装笔记
    [笔记] SpringMVC+Mybatis搭建Web开发环境
  • 原文地址:https://www.cnblogs.com/aeon/p/7683687.html
Copyright © 2020-2023  润新知