1. 程式人生 > >斐波那契數列迴圈實現

斐波那契數列迴圈實現

題目描述
大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項。
n<=39

解題思路
f(n)=f(n-1)+f(n-2)

思路1:遞迴實現會進行大量的重複計算,效率很低,可以自己測試下,對於遞迴的話,可以開闢一個數組儲存f(n)的中間計算結果,如果已經計算過則直接返回,避免重複呼叫,可以達到和迴圈相當的效率。
思路2:從小到大計算,迴圈呼叫。時間複雜度O(n)。


public class feibonaqishulie {

    public int Fibonacci(int n) {

        int n1 = 1;
        int
n2 = 1; int n3 = 2; if (n == 0) return 0; if (n == 1) return 1; if (n == 2) return 1; if (n == 3) return 2; for (int i = 3; i < n; i++) { n1 = n2; n2 = n3; n3 = n1 + n2; } return
n3; } public static void main(String[] args) { System.out.println(new feibonaqishulie().Fibonacci(7)); } }