zoukankan      html  css  js  c++  java
  • 剑指offer系列7--Fibonacci数列n项值

    【题目】求Fibonacci的第n项。

    【思路】第一种方法根据定义式直接用递归的方法,但是效率不高;

           第二种改进的方法如下;

     1 package com.exe2.offer;
     2 
     3 /**
     4  * 7【题目】求Fibonacci的第n项。
     5  *  【思路】第一种方法根据定义式直接用递归的方法,但是效率不高;
     6  *          第二种改进的方法如下;
     7  *          Fibonacci数列:0 1 1 2 3 5 8 13 21 34
     8  *          Fibonacci函数:n=0 f(n)=0
     9  *                n=1 f(n)=1
    10  *                n>=2 f(n)=f(n-1)+f(n-2)
    11  *          例:fibnfun=fibnOne+fibnTwo;
    12  *                f(2)=f(1)   +f(0)
    13  *                f(3)=f(2)   +f(1)
    14  *                f(4)=f(3)   +f(2)
    15  *          所以:  fibnTwo=fibnOne;
    16                   fibnOne=fibnfun;
    17  * @author WGS
    18  *
    19  */
    20 public class Fibonacci {
    21 
    22     public int getNum(int n){
    23         int fibnfun=0;
    24         int fibnOne=1;
    25         int fibnTwo=0;
    26         if(n==0){
    27             return 0;
    28         }else if(n==1){
    29             return 1;
    30         }
    31         
    32         //n>=2
    33         for(int i=2;i<=n;i++){
    34             fibnfun=fibnOne+fibnTwo;
    35             fibnTwo=fibnOne;
    36             fibnOne=fibnfun;                    
    37         }
    38         return fibnfun;
    39         
    40     }
    41     
    42     public static void main(String[] args){
    43         Fibonacci f=new Fibonacci();
    44         int n=f.getNum(9);
    45         System.out.println(n);
    46     }
    47     
    48     
    49     
    50     
    51     
    52     
    53     
    54     
    55     
    56     
    57     
    58     
    59     
    60     
    61 }
  • 相关阅读:
    AC自动机模板
    2013 ACM/ICPC Asia Regional Changsha Online–C (模拟)
    Codeforces126B
    Codeforces182D
    Codeforces149E
    POJ3080
    POJ2752
    HDU4745
    HDU4737
    POJ1226
  • 原文地址:https://www.cnblogs.com/noaman/p/5386927.html
Copyright © 2011-2022 走看看