def factorial(n):
if n == 1: # 基准情况 (Exit)
return 1
return n * factorial(n - 1) # 递归调用
function factorial(n) {
if (n === 1) { // Base Case
return 1;
}
return n * factorial(n - 1);
}
1. 递去 (Push): 每一个未完成的任务都会压入堆栈。
2. 回溯 (Pop): 触碰到 $n=1$ 边界后,开始向上逐层交付结果。