応用情報技術者試験 応用情報技術者試験 令和7年度春期 午前 問7: fact(n) は,非負の整数 n に対して n の階乗を返す。fact(n) の再帰的な定義はどれか。

←
応用情報技術者試験 令和7年度春期 午前
Q 77 / 80
fact(n) は,非負の整数 n に対して n の階乗を返す。fact(n) の再帰的な定義はどれか。
この問の正解率:65.28%(432件)

解説

応用情報技術者試験 令和7年度春期 午前 問7「fact(n) は,非負の整数 n に対して n の階乗を返す。fact(n) …」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約65%です。

正解

ウ. if n=0 then return 1 else return n×fact(n-1)

正答率 65.3%(432人中 282人が正解)

問題の解説

階乗は 0! = 1、n! = n × (n-1)! と再帰的に定義できる。再帰では、n = 0 の終了条件で 1 を返し、それ以外では n より小さい値で自分自身を呼ぶ必要がある。したがって n = 0 のとき 1 を返し、そうでなければ n × fact(n-1) を返す定義が正しい。

選択肢ごとの解説

  • ア終了条件で 0 を返すため、fact(1) = 1 × fact(0) = 0 となり、すべての階乗が 0 になってしまう。0! は 1 でなければならない。
  • イ終了条件が 0 であるうえ、fact(n+1) では n が増えていき、n = 0 に近づかないので再帰が終わらない。
  • ウ正しい。0! = 1 を終了条件とし、それ以外は n × (n-1)! として n を 1 ずつ減らして呼ぶので、必ず n = 0 に到達して階乗になる。
  • エ終了条件は正しいが、fact(n+1) で引数が増えていくため、n = 0 に到達せず、無限に再帰する。

応用情報技術者試験 令和7年度春期 午前 の過去問一覧に戻る・問7

応用情報技術者試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

応用情報技術者試験 合格.dev を App Store でダウンロード