07_斐波那契數列

題目描述

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

n<=39

package RecursionAndLoop;
/*
題目描述
大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項爲0)。
f(n) = {        0           n=0,
                1           n=1,
       f(n)=f(n-1) + f(n-2) n>1
       }
n<=39
 */
public class Fibonacci_07 {
    public int Fibonacci_07 (int n) {
        if(n<=1){
            return n;
        }
        return Fibonacci_07(n-1) + Fibonacci_07(n-2);
    }

    public int Fibonacci (int n) {
        if (n < 2) {
            return n;
        }
        // mid作爲中間變量存起來
        int end = 0;
        int start = 1;
        // i理解爲n-1
        // i end start
        // 0  0   1
        // 1  1   0
        // 2  1   1
        // 3  2   1
        // 4  3   2
        // 5  5   3
        for(int i = 0; i < n; i++) {
            int tmp = end + start;
            start = end;
            end = tmp;
        }
        return end;
    }

    //推薦方式
    public int Fibonacci1 (int n) {
        if (n < 2) {
            return n;
        }

        int sum = 1;
        int one = 0;
        for(int i = 2; i <= n; i++) {
            sum = sum + one;
            one = sum - one;
        }
        return sum;
    }
    public static void main(String[] args) {
        Fibonacci_07 Fibonacci_07 = new Fibonacci_07();
        //0 1 1 2 3 5 8
        int n = Fibonacci_07.Fibonacci(5);
        System.out.println(n);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章