python_实现_斐波那契额函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python_实现_斐波那契额函数相关的知识,希望对你有一定的参考价值。

在学递归的时候,用递归实现了一个

下面是代码

1 def fib(n):
2     if n >= 3:
3         return fib(n-1)+fib(n-2)
4     else:
5         return 1
6 print(fib(6))

发现一个很严重的问题:当数字比较小的时候还好,但是当求30以后的数字的时候,就会运行特别长的时间

所以请看下面一种方法

 1 while True:
 2     def fib(n):
 3         result = [1,1]
 4         for i in range(n-2):
 5             result.append(result[-2]+result[-1])
 6         return result[-1]
 7 
 8 
 9     n = input(你想知道第多少个斐波那契数:)
10     if n == q:
11         break
12     else:
13         n = int(n)
14         print(result = %d%(fib(n)))

发现速度提升特别大,求第1000个数都可以,牛!

以上是关于python_实现_斐波那契额函数的主要内容,如果未能解决你的问题,请参考以下文章

数论--斐波那契额

python_斐波那契数列

python的递归算法学习:具体实现:斐波那契和其中的陷阱

《剑指offer》---斐波那契数列

分别用Python的迭代器和生成器实现斐波那契数列

补8.python之面向对象(通过__iter__,__next__实现迭代器协议)附带斐波那契数列实现