zoukankan      html  css  js  c++  java
  • 悟空偷吃蟠桃的故事

    1、题目描述

      喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!什么问题?他研究的问题是蟠桃一共有多少个!不过,到最后,他还是没能解决这个难题,呵呵^-^当时的情况是这样的:第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?

    2、代码实现

     1 package com.wcy.october;
     2 
     3 /**
     4  * 时间:2016年10月23日
     5  * Problem Description
     6  * 喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!什么问题?他研究的问题是
     7  * 蟠桃一共有多少个!不过,到最后,他还是没能解决这个难题,呵呵^-^当时的情况是这样的:第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半
     8  * 多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
     9  * Input
    10  * 输入数据有多组,每组占一行,包含一个正整数n(1<n<30),表示只剩下一个桃子的时候是在第n天发生的。
    11  * Output
    12  * 对于每组输入数据,输出第一天开始吃的时候桃子的总数,每个测试实例占一行。
    13  * Sample Input
    14  * 2
    15  * 4
    16  * Sample Output
    17  * 4
    18  * 22
    19  */
    20 public class RecursionTest4 {
    21 
    22     /**
    23      * 获取每一天吃蟠桃的数目,我们以逆向思维来看
    24      * @param number 第number天
    25      * @return 吃的蟠桃数目
    26      */
    27     public static int getResult(int number){
    28         if (number == 1) {
    29             return 1;
    30         }else if (number == 2) {
    31             return 3;
    32         }else {
    33             return getResult(number-1)*2;
    34         }
    35     }
    36     
    37     /**
    38      * 求总的蟠桃数目
    39      * @param number 一个number天吃完
    40      * @return 总的蟠桃数目
    41      */
    42     public static int getResultValue(int number){
    43         int result = 0;
    44         for (int i = 1; i <= number; i++) {
    45             result += getResult(i);
    46         }
    47         return result;
    48     }
    49     
    50     /**
    51      * 用户页面测试
    52      * @param args
    53      */
    54     public static void main(String[] args) {
    55         int result = getResultValue(4);
    56         System.out.println(result);
    57     }
    58 }
  • 相关阅读:
    1105 Spiral Matrix (25分)(蛇形填数)
    1104 Sum of Number Segments (20分)(long double)
    1026 Table Tennis (30分)(模拟)
    1091 Acute Stroke (30分)(bfs,连通块个数统计)
    1095 Cars on Campus (30分)(排序)
    1098 Insertion or Heap Sort (25分)(堆排序和插入排序)
    堆以及堆排序详解
    1089 Insert or Merge (25分)
    1088 Rational Arithmetic (20分)(模拟)
    1086 Tree Traversals Again (25分)(树的重构与遍历)
  • 原文地址:https://www.cnblogs.com/wangchaoyuan/p/5990265.html
Copyright © 2011-2022 走看看