アルゴリズムとプログラミング
次の再帰関数 f(n) を f(5) で呼び出したときの戻り値はどれか。 f(n): if n <= 1 then return 1 else return n * f(n - 1)
ア.15
イ.24
ウ.120正解
エ.720
解説
見た目どおり階乗(factorial)です。f(5) = 5! = 120。「自分より1小さい人に投げて、最後は1で受け止める」リレーのイメージ。
なぜ ウ が正解か
f(5) = 5 × f(4) = 5 × 4 × f(3) = 5 × 4 × 3 × f(2) = 5 × 4 × 3 × 2 × f(1) = 5 × 4 × 3 × 2 × 1 = 120。基底ケース f(1)=1 で再帰が止まり、掛け算が逆方向に巻き戻る典型例です。
出典: AI生成問題(学習用)