描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)n≤39。
斐波那契数列:
1 1 2 3 5 8 13……
后一项是前两项的和
n = 0 num=0
n=1 num =1
n =2 num=1
……
f(n) = f(n-1)+f(n-2)
这样写可以通过吗?
感觉是没有问题,但是题目要求输入的是一个整数n,整数包括正数、负数和0,所以我们需要对负数进行处理。
我们可以当输入一个负数的时候返回一个None,说明没有找到想要的斐波那契数列
现在考虑了负数但是还是报错。说明算法的复杂度过大。
注:
如果按照递归来写的话,时间复杂度就是随着n的变化,增长率是2^n
那么我们应该如何去写呢?那就需要按照非递归实现
这样就通过了