疑问
这里 else 中return n * factorial(n - 1)
为什么就可以正常运行不能继续运算到 - 1 -2 -3 等等嘛? 因为
if n == 1:
return 1 # 没有递归
这个函数就不会继续递归到0, -1, -2了
只能递归到1 比如
factorial(2)
首先,它会 return 2 * factorial(1)
已知 factorial(1) 就是 1,不会递归
factorial(2) 就是 return 2 * 1
就是 2 了 再比如
factorial(3)
首先,它会 return 3 * factorial(2)
factorial(2)就是2 * 1
3*2*1 = 6
页:
[1]