zoukankan      html  css  js  c++  java
  • Java50道经典习题-程序1 不死神兔

    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?

    分析:假如:1月1日有1对兔子,根据题目“从出生后第3个月起每个月都生一对兔子”即3月1日这对兔子产子一对由此可推出一对兔子从出生到产子的时间为每两个月一次,从第二对兔子开始,后续兔子的产子时间相同由此可得出以下的兔子数规律    兔子的规律为1,1,2,3,5,8,13,21....

    从第3月开始,每月兔子的总数等于上两月兔子总数之和

    总数量           1          1          2          3          5          8            13          21

    月份               1月        2月        3月        4月        5月        6月        7月        8月

                        A                          A1          A2          A3          A4          A5          A6

    兔                                                                          A1-1      A1-2      A1-3      A1-4

    子                                                                                        A2-1      A2-2      A2-3

    族                                                                                                      A3-1      A3-2

    谱                                                                                                      A1-1-1   A4-1

                                                                                                                           A1-1-2

                                                                                                                           A1-2-1

                                                                                                                           A1-2-1

                                                                                                                           A2-1-1

     1 public class Prog1 {
     2     public static void main(String[] args) {
     3         int Month=8;
     4         System.out.println("第"+Month+"月,兔子的总对数有:"+Sum(Month)+"对");
     5     }    
     6     private static int Sum(int Month) {
     7         if(Month==1||Month==2) {//第1月和第2月单独计算
     8             return 1;
     9         }else {
    10             return Sum(Month-1)+Sum(Month-2);//从第3月开始,每月兔子的总数等于上两月兔子总数之和
    11         }
    12     }    
    13 }
    14 /*程序编译运行的结果如下:
    15 第8月,兔子的总对数有:21对
    16 */
  • 相关阅读:
    UVA 213 Message Decoding 【模拟】
    HDU 5976 Detachment 【贪心】 (2016ACM/ICPC亚洲区大连站)
    HDU 5979 Convex【计算几何】 (2016ACM/ICPC亚洲区大连站)
    HDU 5963 朋友 【博弈论】 (2016年中国大学生程序设计竞赛(合肥))
    HDU 5969 最大的位或 【贪心】 (2016年中国大学生程序设计竞赛(合肥))
    HDU 5968 异或密码 【模拟】 2016年中国大学生程序设计竞赛(合肥)
    HDU 5961 传递 【图论+拓扑】 (2016年中国大学生程序设计竞赛(合肥))
    HDU 5965 扫雷 【模拟】 (2016年中国大学生程序设计竞赛(合肥))
    HDU 5950 Recursive sequence 【递推+矩阵快速幂】 (2016ACM/ICPC亚洲区沈阳站)
    HDU 5952 Counting Cliques 【DFS+剪枝】 (2016ACM/ICPC亚洲区沈阳站)
  • 原文地址:https://www.cnblogs.com/parkour1026/p/10796968.html
Copyright © 2011-2022 走看看