アルゴリズム図鑑
階乗(再帰)
関数の中で自分自身を呼び出す「再帰」を使って、n! = n × (n−1)! を計算します。
考え方
- n ≦ 1 のときは自分を呼ばずに 1 を返す(ここで再帰が止まる)
- factorial(4) → factorial(3) → … と呼び出しが深くなり、戻るときに掛け算される
- 呼び出しの途中の状態は、スタックに積まれていく
計算量
O(n)
試験でのポイント
- 止まる条件(基底条件)がないと、呼び出しが無限に続く
- 「何回呼び出されるか」「戻り値がどの順で決まるか」が問われやすい