FE用語ドリル

アルゴリズム図鑑

階乗(再帰)

関数の中で自分自身を呼び出す「再帰」を使って、n! = n × (n−1)! を計算します。

考え方

  • n ≦ 1 のときは自分を呼ばずに 1 を返す(ここで再帰が止まる)
  • factorial(4) → factorial(3) → … と呼び出しが深くなり、戻るときに掛け算される
  • 呼び出しの途中の状態は、スタックに積まれていく

計算量

O(n)

試験でのポイント

  • 止まる条件(基底条件)がないと、呼び出しが無限に続く
  • 「何回呼び出されるか」「戻り値がどの順で決まるか」が問われやすい

この図鑑の問題を解く

ほかのアルゴリズム