美文网首页基础练习题
1 、 斐波那契的兔子

1 、 斐波那契的兔子

作者: 北极的大企鹅 | 来源:发表于2023-09-10 05:36 被阅读0次
    • 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    • 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
      斐波那契数列, Sn = Sn-1+Sn-2

    • 思路分析: 这是一道数学问题,思路就是,首先你要知道递归的概念,什么是递归,递归在编程里就是一个判断

    • 一般用if语句实现

            if(条件一)
         {
                     执行一                                           
          }
          else
          {
                     这行这里的递归
            }
    
    • 一般这种问题都是有一个条件是死的,然后返回一,另一个变化的执行else中的递归,递归也是一个面向对象的问题,比如问你,你是谁,你说我是我爸爸的儿子,问你爸爸是谁,你说我爸爸是我爷爷的儿子

    • 类似这种问题和思维模式的问题都可以用到递归.阶层也是用的这种递归,比如 1+2!+3!就是,想知道这个答案,就要往上边不断的策反,想知道2!是多少你就是得先知道1!是多少,就是这样找寻源头的问题.

    
      public class _001Double_Rabbit
      {
          public static void main(String[] args)
          {
              System.out.println("第10月:有" + method(10) + "对");
              method_2(10);
          }
          public static int method(int i)
          {
              if(i == 1 || i == 2)
              {
                  return 1;
              }
              else
              {
                  return method(i - 1) + method(i - 2);
              }
          }
          public static void method_2(int k)
          {
              int f1 = 1, f2 = 1;
              int f, M = k;
              for(int j = 3; j <= M; j++)
              {
                  f = f2;
                  f2 = f1 + f2;
                  f1 = f;
              }
              System.out.println("第" + k + "月:" + "有" + f2 + "对" + "\t");
          }
      }
    
    
    

    相关文章

      网友评论

        本文标题:1 、 斐波那契的兔子

        本文链接:https://www.haomeiwen.com/subject/usljvdtx.html