以下是一段使用递归结合记忆化实现斐波那契数列的代码片段:
from functools import lru_cache @lru_cache(maxsize=None) def fib(n): if n <= 1: return n return fib(n-1) + fib(n-2)
关于这段代码和相关知识点,下列说法正确的是?
这段代码中的@lru_cache装饰器的作用是记录函数调用的参数和返回值,避免重复计算相同参数的递归调用
@lru_cache
如果移除@lru_cache装饰器,计算fib(30)的时间复杂度不会发生任何变化
递归函数不需要设置终止条件也可以正常运行,不会出现栈溢出错误
当n=5时,这段代码中fib(3)会被计算2次