劍指offer編程題Java實現——面試題9斐波那契數列



題目:寫一個函數,輸入n,求斐波那契數列的第n項。

 

 1 package Solution;
 2 
 3 /**
 4  * 劍指offer面試題9:斐波那契數列
 5  * 題目:寫一個函數,輸入n,求斐波那契數列的第n項。
 6  *                     0,                n=1
 7  *     斐波那契數列定義如下:f(n)=      1,                n=2
 8  *                                 f(n-1)+f(n-2),    n>2
 9  * @author GL
10  *
11  */
12 public class No9Fibonacci {
13 
14     public static void main(String[] args) {
15         System.out.println("第4項斐波那契數列的值為:"+fibonacci(4));
16     }
17 
18     /*
19      * 采用遞歸實現斐波那契數列生成函數,效率低
20      */
21     public static int generateFibonacci(int n){
22         if(n==0)
23             return 0;
24         if(n==1)
25             return 1;
26         return generateFibonacci(n-1)+generateFibonacci(n-2);
27     }
28     
29     /*
30      * 采用循環實現斐波那契數列
31      * 存儲數列中間項,求得結果
32      */
33     public static int fibonacci(int n){
34         int[] result={0,1};
35         if(n<2)
36             return result[n];
37         int fibNMinusOne=1;
38         int fibNMinusTwo=0;
39         int fibN=0;
40         for(int i=2;i<=n;i++){
41             fibN=fibNMinusOne+fibNMinusTwo;
42             fibNMinusTwo=fibNMinusOne;
43             fibNMinusOne=fibN;
44         }
45         return fibN;
46     }
47 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM