剑指offer:斐波纳契数列(java)

/**
 * 题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39
 *     斐波那契数列:
 *           n=0,f(n)=0;
 *           n=1,f(n)=1;
 *           n>=2,f(n)=f(n-1)+f(n-2)
 * 解题思路:
 *          将中间的计算结果保留,用来下一次计算
 *          用递归会重复计算很多数据,这样用循环的方式实现递归,极大地提高时间效率
 *
 */
public class P76_Fibonacci {
    public int Fibonacci(int n){
        int result = 0;
        if (n == 0 || n == 1) {
            result = n;
        }
        int temp1 = 0;
        int temp2 = 1;

        for (int i = 2; i <= n; i++) {
            result = temp1 + temp2;
            temp1 = temp2;
            temp2 = result;
        }
        return result;
    }

    public static void main(String[] args) {
        int n = 3;
        P76_Fibonacci test = new P76_Fibonacci();
        int result = test.Fibonacci(n);
        System.out.print(result);
    }
}

猜你喜欢

转载自blog.csdn.net/Sunshine_liang1/article/details/82467946