可能有很多原因;以下是一些可能的原因: 递归深度较大,增加了堆栈使用量 - 时间花费在绕圈和解开堆栈上,并且堆栈消耗内存,每次递归留下更少的内存,而迭代使用不会使用更多资源(包括堆栈)的JUMP命令 递归函数保存了许多状态(例如局部变量),必须将其保留在内存中,直到递归完成(另一方面,迭代在每次迭代时都会丢弃本地变量),再次留下较少的可用内存用于每个后续递归