fibonacci2.py 530 字节
Newer Older
F
feilong 已提交
1
# -*- coding: UTF-8 -*-
F
feilong 已提交
2
# 作者:huanhuilong
F
feilong 已提交
3 4 5
# 标题:Python 函数+缓存
# 描述:递归计算斐波那契函数, 带缓存

F
feilong 已提交
6
def fibonacci_inner1(n, cache):
F
feilong 已提交
7
    if n == 1 or n == 2:
F
feilong 已提交
8 9
        cache[0] = 1
        cache[1] = 1
F
feilong 已提交
10 11
        return 1

F
feilong 已提交
12 13 14 15
    if cache.get(n) is None:
        fibonacci_inner1(n-2, cache)
        fibonacci_inner1(n-1, cache)
        cache[n-1] = cache[n-2]+cache[n-3]
F
feilong 已提交
16

F
feilong 已提交
17
    return cache[n-1]
F
feilong 已提交
18

F
feilong 已提交
19 20 21

def fibonacci1(n):
    return fibonacci_inner1(n, {})
F
feilong 已提交
22 23 24


if __name__ == '__main__':
F
feilong 已提交
25
    print(fibonacci1(10))