# encoding:utf-8
def fib(n):
"""迭代法
>>> fib(8)
13
"""
prev, curr = 1, 0
for _ in range(n - 1):
prev, curr = curr, prev + curr
return curr
def memo(fib):
"""缓存法"""
cache = {}
def memo_cache(n):
if n not in cache:
cache[n] = fib(n)
return cache[n]
return memo_cache
@memo
def rec_fib(n):
"""递归法
>>> rec_fib(8)
13"""
if n == 1:
return 0
if n == 2:
return 1
else:
return rec_fib(n-2) + rec_fib(n-1)
if __name__ == '__main__':
import doctest
doctest.testmod()
实现斐波那契数列的几种方法
最新推荐文章于 2021-12-08 22:21:52 发布
本文深入解析Python在大数据开发领域的应用,通过Hadoop、Spark等工具的使用,展示如何高效处理大规模数据集,实现数据挖掘、分析与可视化。重点介绍Python在数据清洗、特征工程、模型训练及评估过程中的优势,以及如何利用Python生态系统中的各种库和框架,如Pandas、NumPy、Scikit-learn和Dask等,提升数据处理效率。

890

被折叠的 条评论
为什么被折叠?



