You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Python递归实现数组元素批量乘系数会报最大递归深度错误

RecursionError报错原因分析
  • 核心原因是递归函数缺少终止退出的逻辑,触发了无限递归,最终超过Python默认的递归深度阈值(默认值约为1000层)触发报错。
  • 你当前编写的multAllRec函数逻辑存在缺陷:仅在i<len(A)的条件下执行数组元素修改操作,但无论该条件是否成立,都会无差别执行下一层递归调用multAllRec(k, A, i + 1)。
  • 以你测试的长度为5的数组为例:当i迭代到5时,i<len(A)的条件不成立,不会修改元素,但程序仍会继续调用i=6、i=7……的递归,递归层级无限增长,直到触发系统限制。
修复方案

只需要补充递归终止逻辑,当索引超出数组范围时直接退出函数即可,修改后的代码参考:

def multAll(k,A) : 
    multAllRec(k,A,0)
def multAllRec(k,A,i) : 
    # 索引超出范围时直接终止递归
    if i >= len(A):
        return
    A[i] *= k
    multAllRec(k, A, i + 1)

multAll(10,[5,12,31,7,25])

内容的提问来源于stack exchange,提问作者Dran Kisnosx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:06:04