剑指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