礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

递归为什么会卡死-递归很难

2025-11-20 06:25:53  

递归为什么会卡死-递归很难

优质解答

递归就是函数自己调用自己,每层调用都占内存。比如写个加法函数,每次调用都生成新的一层,就像叠积木一样。当叠到一定高度,内存就装不下了,程序直接卡死。这就像你拿个10 cent的塑料盒装100 cent的,肯定装不下。

因为函数调用会生成“调用栈”,每层递归都往栈里压数据。假设栈能存50层,但你的代码写了60层递归,第51层开始就挤不进去了。数据表明,普通电脑栈空间通常也就几MB,而Python默认栈深度是1000层。比如用递归算阶乘,n=1000时,第1001层调用就会爆栈。这就像你用筷子夹1000根头发,第1001根肯定夹不住。而且调用栈是后进先出的,越早的调用越晚释放内存,卡住的那层根本等不到回收。

本题链接:

递归栈溢出