Monsieur. 发表于 2022-1-25 19:52:40

疑问

这里 else 中
   return n * factorial(n - 1)

为什么就可以正常运行不能继续运算到 - 1 -2 -3 等等嘛?

ckblt 发表于 2022-1-25 20:01:19

因为
if n == 1:
    return 1 # 没有递归
这个函数就不会继续递归到0, -1, -2了
只能递归到1

ckblt 发表于 2022-1-25 20:06:17

比如
factorial(2)
首先,它会 return 2 * factorial(1)
已知 factorial(1) 就是 1,不会递归
factorial(2) 就是 return 2 * 1
就是 2 了

ckblt 发表于 2022-1-25 20:13:34

再比如
factorial(3)
首先,它会 return 3 * factorial(2)
factorial(2)就是2 * 1
3*2*1 = 6
页: [1]
查看完整版本: 疑问