斐波那契数列指的是这样一个数列:

java斐波那契的尾递归算法 java斐波那契数列递归_ci

 

这个数列从第3项开始,每一项都等于前两项之和。

以递推的方法定义:

F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)

java代码递归实现:

public class Answer{
    public int Fibonacci(int n) {
        if(n == 0) {
            return 0;
        }
        if(n == 1) {
            return 1;
        }
        return Fibonacci(n-1) + Fibonacci(n-2);
    }
}

//更好的解法(提高时间效率)

public int  fibonacci(int n){
    if (n < 2){
        return n;
    }
    int fibN = 0;
    int fibOne = 0;
    int fibTwo = 1;
    for (int i = 2; i <= n ; i++){
        fibN = fibOne + fibTwo;
        fibOne = fibTwo;
        fibTwo = fibN;
    }
    return fibN;
}