斐波那契数列(Fibonacci Sequence)

公式:



Java 代码:

public class Solution {
    public static void main(String[] args) throws Exception {
        Solution solution = new Solution();
        System.out.println(solution.Fibonacci(10));
        System.out.println(solution.Fibonacci2(10));
    }

    // 递归形式
    public int Fibonacci(int n) {
        if (n < 0)
            return -1;
        else if (n == 0)
            return 0;
        else if (n == 1)
            return 1;
        else {
            return Fibonacci(n - 1) + Fibonacci(n - 2);
        }
    }

    // 非递归形式
    public int Fibonacci2(int n) {
        if (n < 0)
            return -1;
        else if (n == 0)
            return 0;
        else if (n == 1)
            return 1;
        else {
            int fibMinusOne = 1;
            int fibMinusTwo = 0;
            int fibN = 0;
            for (int i = 2; i <= n; i++) {
                fibN = fibMinusOne + fibMinusTwo;
                fibMinusTwo = fibMinusOne;
                fibMinusOne = fibN;
            }
            return fibN;
        }
    }
}


你可能感兴趣的:(面试题)