剑指offer-07. 斐波那契数列

题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

n<=39

解题思路:

根据规律,后一项等于前两项之和,逐个累加即可

代码实现(非递归):

class Solution {
    /*
    根据规律,后一项等于前两项之和,逐个累加即可
    */
public:
    int Fibonacci(int n) {
        if(n == 0){
            return 0;
        }
        if(n <= 2){
            return 1;
        }
         int f1 = 1,f2 = 1,f3 = 2;
        for(int i=3;i<n;i++){
            f1 = f2;
            f2 = f3;
            f3 = f1+f2;
        }
        return f3;
    }
};

效率:

代码实现(递归):

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

    }
}

效率:

发布了89 篇原创文章 · 获赞 0 · 访问量 925

猜你喜欢

转载自blog.csdn.net/qq_34449717/article/details/103948657
今日推荐