递归比迭代多花的是什么
同样的逻辑,递归比迭代多花的是【0】。
开始练习 →
那递归还有什么好
明知有栈开销还用递归,理由是【0】。
开始练习 →
什么样的递归最容易改成循环
最容易改写成循环的是【0】。
开始练习 →
循环版算出来一样吗
运行下面这段程序: def fact(n): if n <= 1: return 1 return n * fact(n - 1) def fact_loop(n): r = 1 fo
开始练习 →
循环版压了几层栈
运行下面这段程序,它数的是"最深压了几层": MAXD = 0 def fact_loop(n, d): global MAXD if d > MAXD: MAXD = d
开始练习 →
把递归阶乘改成循环
补全 fact_loop:用循环算阶乘,不许递归。 算 5 的阶乘。
开始练习 →
把递归斐波那契改成循环
补全 fib_loop:用循环算第 n 个斐波那契数。 ⚠️ 循环版没有重复计算——这正是它比朴素递归快的原因。
开始练习 →
⚠️ 两种写法结果一样,栈深差 5 倍
把递归版和循环版都写出来,把三样东西拼起来输出(用 / 隔开):两个结果是否相等、递归版的最大深度、循环版的最大深度。
开始练习 →
记忆化在做什么
记忆化(memoization)的做法是【0】。
开始练习 →
什么样的递归值得记忆化
记忆化只在【0】的时候有用。
开始练习 →