《劍指offer》之斐波那契數列

《劍指offer》之斐波那契數列

題目:大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項爲0)。n≤39

分析:斐波那契數列以如下被以遞歸的方法定義:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字來說,就是斐波那契數列由 0 和 1 開始,之後的斐波那契數列係數就由之前的兩數相加。指的是這樣一個數列:0、1、1、2、3、5、8、13、21、……

解決方案:

  • 代碼:

     public int Fibonacci(int n) {
            int first = 0;
            int last = 1;
            if(n == 0){
                return first;
            }else if(n == 1){
                return last;
            }else{
                for(int i =0;i<=n-2;i++){
                    last= first + last;
                    first = last - first;
                }
            }
            return last;
        }
    

    測試性能分析:

    運行時間:17ms
    佔用內存:9216k
    
  • 使用遞歸實現

    代碼:

    public int Fibonacci(int n) {
        if(n==0){
            return 0;
        }else if(n==1||n==2){
            return 1;
        }else if(n==3){
            return 2;
        }else{
            return 3*Fibonacci(n-3)+2*Fibonacci(n-4);
        }
            
    }
    

    測試性能分析:

    運行時間:25ms
    佔用內存:9340k
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章