题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
n<=39
斐波那契数列:
1,1, 2,3, 5,8, 13, 21.........
C++实现:
class Solution {
public:
int Fibonacci(int n) {
if((n == 1) ||(n == 2))
return 1;
else
{
int a = 1;
int b = 1;
int t = 0;
for(int i = 3; i <= n; i++)
{
t = a + b;
a = b;
b = t;
}
return t;
}
}
};
C++递归实现(超出了内存限制):
class Solution {
public:
int Fibonacci(int n) {
if((n == 1) ||(n == 2))
return 1;
else
{
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
};
Python实现:
# -*- coding:utf-8 -*-
class Solution:
def Fibonacci(self, n):
# write code here
if n == 1:
return 1;
elif n == 2:
return 1;
elif n == 0:
return 0;
else:
a = [1, 1]
for i in range(2, n):
t = a[-1] + a[-2]
a.append(t)
return a[-1]