python 斐波那契数列缓存方式实现

来源:互联网 发布:手机淘宝差评怎么删掉 编辑:程序博客网 时间:2024/06/04 21:06
#!/usr/bin/env python3# -*- coding: utf-8 -*-' a test module '__author__ = 'Zhang Shuai'from functools import wrapsimport  timedef memory(func):    l = {}    @wraps(func)    def wrap(n):        if n not in l:    #若以经计算过直接在list中返回,没有则计算            l[n] = func(n)        return l[n]    return wrap@memorydef fib(n):    time.clock()    if 1<n<=3:        return 1    elif n==1:        return 0    else:        return fib(n-1) +fib(n-2)print(time.clock())print(fib(100))print(time.clock())

使用装饰器缓存后,计算时间大幅度改善。

原创粉丝点击