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

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

解説

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

正解

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

正答率 48.7%(1,098人中 535人が正解)

問題の解説

階乗は n!=n×(n−1)×…×1 で,数学上 0!=1 と定義される。再帰で定義するには『n が 0 のとき1を返す(終了条件)』と『それ以外は n×fact(n−1) を返す(自分自身を引数を1減らして呼ぶ)』の2点が必要である。終了条件で1を返し,かつ引数を減らして再帰するウが正しい。0を返すと結果全体が0になり,引数を n+1 と増やすと終了せず無限再帰になる。

選択肢ごとの解説

  • 誤り。終了時に0を返すため,最後に0が掛けられて結果全体が0になってしまい階乗にならない。
  • 誤り。終了時に0を返す点に加え,fact(n+1)と引数が増えていくので n=0 に到達せず無限再帰になる。
  • 正しい。0!=1 を終了条件とし,n×fact(n−1) で引数を1ずつ減らして再帰するので,正しく n の階乗を計算できる。
  • 誤り。終了条件で1を返す点は正しいが,fact(n+1)と引数が増え続け n=0 に到達しないため無限再帰になる。

応用情報技術者試験 平成29年度秋期 午前 の過去問一覧に戻る・問7

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

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

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