剑指offer 7、斐波那契数列 python和c++

题目:

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

思路: 斐波那契数列核心 就一个 f(n) = f(n-1) + f(n-2) 这个太熟悉了,直接用节省空间版的动态规划。

c++版

class Solution {
public:
    int Fibonacci(int n) {
        if(n<1)
            return 0;
        if(n<2)
            return 1;
        int num1 = 0, num2 = 1, res = 0;  //初始化
        for(int i = 1; i < n; ++i){
            res = num1 + num2;  
            num1 = num2; 
            num2 = res;
        }
        return res;
    }
};

python版

# -*- coding:utf-8 -*-
class Solution:
    def Fibonacci(self, n):
        if n < 2:
            return n     #因为前两项的值和项数是一样的
        num1,num2 = 0, 1
        for i in range(1,n):
            res = num1 + num2
            num1 = num2
            num2 = res
        return res
        # write code here
posted on 2021-06-10 17:21  雾恋过往  阅读(36)  评论(0编辑  收藏  举报

Live2D