题目:要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
f(n)=f(n-1)+f(n-2)
递归实现:
class Solution:
def Fibonacci(self,n):
if n==0:
return 0
elif n==1 or n==2:
return 1
else:
f=self.Fibonacci(n-1)+self.Fibonacci(n-2)
return f
递归方法容易超时导致代码不能通过,改用循环:
class Solution:
def Fibonacci(self,n):
if n==0:
return 0
elif n==1:
return 1
else:
f0,f1=0,1
for i in range(2,n+1):
a=f0+f1
f0=f1
f1=a
return a