题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39
像这样的数列:0 1 1 2 3 5 8…
第一项 0
第二项 1
第三项 1
第四项 2
从第三项开始的数值是前两项数值的和
解答一:
非递归算法:
class Solution:
def Fibonacci(self, n):
if n == 0:
return 0
if n == 1:
return 1
a = 0 #第一项数值
b = 1 #第二项数值
i = 1
while i < n:#循环,也可以用for循环
a, b = b, a+b
i += 1
return b
test = Solution()
test.Febonacci(6)
8
解答二:
递归算法:(比较慢)
class Solution:
def Febonacci(self,n):
#用递归的方式实现
if n == 0:
return 0
if n == 1:
return 1
if n > 1:
return self.Febonacci(n-1) + self.Febonacci(n-2)#递归调用Febonacci函数
test = Solution()
test.Febonacci(3)
2
类似于斐波那契数列的问题还有跳台阶的问题
处理方法:
先找规律,找通项,就很简单了