大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
斐波那契数列: 0 1 1 2 3 5 8 13 …
递归法,复杂度太高:
# -*- coding:utf-8 -*-
class Solution:
def fibonacci(self, n):
if n == 0:
return 0
if n == 1:
return 1
if n > 1:
num = self.fibonacci(n - 1) + self.fibonacci(n - 2)
return num
return None
if __name__ == '__main__':
s = Solution()
print(s.fibonacci(4))
运行结果为:
3
循环法,复杂度低:
# -*- coding:utf-8 -*-
class Solution:
def fibonacci(self, n):
if n == 0:
return 0
if n == 1:
return 1
a = 0
b = 1
ret = 0
for i in range(0, n - 1):
ret = a + b
a = b
b = ret
return ret
if __name__ == '__main__':
s = Solution()
print(s.fibonacci(4))
运行结果为:
3