zoukankan      html  css  js  c++  java
  • 1 斐波那契的兔子

    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 
      程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....    
              斐波那契数列, Sn = Sn-1+Sn-2

    思路分析: 这是一道数学问题,思路就是,首先你要知道递归的概念,什么是递归,递归在编程里就是一个判断
    一般用if语句实现
    if(条件一){
    执行一
    }else
    {
    这行这里的递归
    }
    一般这种问题都是有一个条件是死的,然后返回一,另一个变化的执行else中的递归,递归也是一个面向对象的问题,比如问你,你是谁,你说我是我爸爸的儿子,问你爸爸是谁,你说我爸爸是我爷爷的儿子
    类似这种问题和思维模式的问题都可以用到递归.阶层也是用的这种递归,比如 1+2!+3!就是,想知道这个答案,就要往上边不断的策反,想知道2!是多少你就是得先知道1!是多少,就是这样找寻源头的问题.
     1       public class _001Double_Rabbit {
     2 
     3     public static void main(String[] args) {
     4         System.out.println("第10月:有"+method(10)+"对");
     5         method_2(10);
     6     }
     7 
     8     public static int method(int i) {
     9         if (i == 1 || i == 2) {
    10             return 1;
    11         } else {
    12             return method(i - 1) + method(i - 2);
    13         }
    14     }
    15 
    16     public static void method_2(int k) {
    17         int f1 = 1, f2 = 1;
    18         int f, M = k;
    19         for (int j = 3; j <= M; j++) {
    20                 f = f2;
    21                 f2 = f1 + f2;
    22                 f1 = f;
    23         }
    24         System.out.println("第"+k+"月:"+"有"+f2+"对"+"	");
    25     }
    26 }
  • 相关阅读:
    ISO 学习笔记 2015-03-15
    IOS 学习笔记 20150314
    IOS 学习日志 2015-3-13
    Letter Combinations of a Phone Number
    anagrams
    Pow(x, n)
    Distinct Subsequences
    Excel Sheet Column Number
    MIT 三课程
    c++ 重载,覆盖,重定义
  • 原文地址:https://www.cnblogs.com/liuyangfirst/p/6483412.html
Copyright © 2011-2022 走看看