応用情報技術者試験 応用情報技術者試験 平成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が0のときは1を返し、そうでなければnにfact(n−1)を掛けて返す形になる。引数は呼び出すたびに基底の0へ近づく必要があり、基底での返値は掛け算に影響しない1でなければならない。

選択肢ごとの解説

  • アn=0のときに0を返すと、掛け算の連なりの末尾が0になり、どのnについても結果が0になってしまう。
  • イ引数がn+1と増えていくので基底のn=0に近づかず、再帰が終わらない。基底で0を返す点も誤りである。
  • ウ正しい。基底で0の階乗である1を返し、それ以外はnにfact(n−1)を掛けるので、定義のとおりに計算できる。
  • エ基底で1を返す点は正しいが、引数がn+1と増えるので基底のn=0に近づかず、再帰が終わらない。

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

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

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

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