IPA過去問ドリル

平成28年度 春期 基本情報技術者試験 午前 問7

テクノロジ/アルゴリズム

n の階乗を再帰的に計算する関数 F(n) の定義において,aに入れるべき式はどれか。ここで,n は非負の整数とする。 n>0のとき,F(n)=a n=0のとき,F(n)=1

出典:平成28年度 春期 基本情報技術者試験 午前 問7

正解:ウ

解説

階乗の定義n!=n×(n-1)!に基づき,F(n)はn>0のときn×F(n-1)として定義されます。F(0)=1を基底(終了条件)として,この漸化式を繰り返し適用することでn!が正しく計算されます。

選択肢ごとの解説

  • 誤り。加算では階乗の値ではなく,等差的に増える値になり,n!の定義と一致しません。
  • 誤り。F(n)自身を定義の中で使っており,再帰的定義として循環してしまいます。
  • 正しい。n!=n×(n-1)!という階乗の定義そのものです。
  • 誤り。イと同様にF(n)自身を使っており,再帰的定義として成立しません。
基本情報技術者の過去問を演習モードで解く