lintcode366. 斐波纳契数列
1.题目
查找斐波纳契数列中第 N 个数。
所谓的斐波纳契数列是指:
- 前2个数是 0 和 1 。
- 第 i 个数是第 i-1 个数和第i-2 个数的和。
斐波纳契数列的前10个数字是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...
2.思路
思路①:利用两个或者三个指针,把每次加完的值赋给之前的变量。
思路②:就是很明显的使用递归。
3.代码
思路①
class Solution:
"""
@param n: an integer
@return: an ineger f(n)
"""
def fibonacci(self, n):
if(n == 1):
return 0
if(n == 2):
return 1
a, b, c = 0, 1, 0
for i in range(3, n+1):
c = a + b
a = b
b = c
return c
思路②
class Solution {
public:
int Fibonacci(int n) {
if(n == 0){
return 0;
}
if(n == 1){
return 1;
}
int result = Fibonacci(n-1) + Fibonacci(n-2);
return result;
}
};