写在递归调用前面和后面
把一句 print 放在递归调用之前还是之后,区别是【0】。
`fib(5)` 会调用几次自己
朴素写法的斐波那契 fib(n),调用次数【0】。
怎么看清一个递归的执行过程
想弄清一个递归到底怎么跑的,最实用的办法是【0】。
第六个斐波那契数是多少
约定 fib(0)=0、fib(1)=1。运行下面这段程序: def fib(n): if n <= 1: return n return fib(n - 1) + fib(n - 2) print(
⚠️ 它一共调用了自己多少次
同一个朴素写法,数一数一共进了几次函数。运行下面这段程序: CALLS = 0 def fib(n): global CALLS CALLS += 1 if n <= 1: return n
写一个能看见过程的递归
补全 walk:进入时把 n 记进 ORDER,然后递归到 n-1,返回时再把 n 记一次。 调用 walk(3) 之后,把 ORDER 拼起来输出。
数一数朴素斐波那契调了几次
补全 fib,并让它每进一次函数就把 CALLS 加一。 算 fib(6),输出 CALLS。
递归停不下来会怎样
递归没有出口,一直往下调,最后会【0】。
无限递归最常见的两种写法
递归停不下来,通常是因为【0】。
出口写了却还是停不下来
明明写了 if n == 0: return,递归还是停不下来,最可能是【0】。