python递归函数使用@lru_cache()装饰器缓存中间计算结果

很多复杂的问题在没有发现明显的计算规律的时候,也许使用递归能帮我们得到答案。

使用递归的条件:
递归公式:第n次与第n-1次的关系
收敛条件:何时停止递归调用,无限递归会触发递归错误(溢出)

举一个简单的例子:计算n的阶乘 n! = n * (n-1)!

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)


for i in range(1,101):
    print(f'{i}的阶乘是:{factorial(i)}')

n等于0的时候停止递归调用

打印出1到100的阶乘,因为这个计算还不算复杂,所以秒出答案。

——————————————————————————————————

换一个问题:小孩爬楼梯,一次可爬1,2,3个台阶,n个台阶多少种走法?

def crawl(num
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值