2025-11-20 06:25:52
递归像搭积木,每层叠加上去,但如果没有底座,积木会倒。比如计算阶乘,1!是1,2!是2×1,但每次调用自己,必须有个“结束点”让程序停下。如果漏掉这步,程序会无限循环,占满内存出问题。就像煮汤烧干了,锅会冒烟报警。
为什么这么难?因为递归像看回放,自己给自己下任务。比如算10的阶乘,程序会先算9的阶乘,再算8的,到0的。但人类大脑习惯从结果倒推,而程序必须一步步向前跑。数据显示,新手写递归时,70%的错误是忘记终止条件(Stack Overflow 大前年统计)。更麻烦的是,每次调用都会在内存里留个“小房间”(栈帧),房间太多就会爆满。比如Python默认栈深1000层,超过就报错。就像住满1000人的宿舍,再进来一个就挤爆了。所以既要搭好积木,又得随时数房间数,难怪老手都说“递归是编程的照妖镜”。
本题链接: