递归是我们常用的一种方式之一,特别是当表达式比较复杂难以化解成循环来求解的时候。但递归经常会进行重复计算,这无形中增大了计算开销,如果我们可以把计算的中间结果保存起来就好了。python当然优雅的实现了这一点。不多说,直接上代码:
from functools
import lru_cache
@lru_cache
(maxsize
=9)
def fbnc(n
):
if n
<= 1:
return 1
else:
return fbnc
(n
-1) + fbnc
(n
- 2)
print([fib
(n
) for n
in range(10)])
fbnc
.cache_clear
()
转载请注明原文地址: https://mac.8miu.com/read-486725.html