您的位置:首页 > 其它

实现斐波那契数列的几种方法

2014-06-23 20:37 507 查看
# 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
= fib(n)
return cache

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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  斐波那契