题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
python(使用递归会超时):
# -*- coding:utf-8 -*-
class Solution:
def Fibonacci(self, n):
if n == 0:
return 0
elif n == 1:
return 1
else:
temp = 2
init = []
init.extend([0, 1])
while temp <= n:
init.append(init[temp-1]+init[temp-2])
temp += 1
return init[-1]
c++
注:假设a为一个vector, c++中a[-1]存在,但是对于正常的程序来说,那毫无意义,它指的是这个数组首地址前面的一段内存。不像python一样表示最后一个元素
class Solution {
public:
int Fibonacci(int n) {
if(n==0) return 0;
else if(n==1) return 1;
else{
int temp = 2;
vector<int> init;
init.push_back(0);
init.push_back(1);
while(temp<=n){
init.push_back(init[temp-1]+init[temp-2]);
temp++;
}
return init[n];
}
}
};