令和7年度春期 応用情報技術者試験 午前 問7

分野:アルゴリズムとプログラミング|実際に出題されたIPA過去問題

fact(n)は,非負の整数nに対してnの階乗を返す。fact(n)の再帰的な定義はどれか。

  1.  if n=0 then return 0 else return n×fact(n−1)
  2.  if n=0 then return 0 else return n×fact(n+1)
  3.  if n=0 then return 1 else return n×fact(n−1)
  4.  if n=0 then return 1 else return n×fact(n+1)
解答・解説を見る

正解:ウ

AI解説

階乗の再帰的定義は、基底条件としてn=0のとき1を返し(0!=1)、それ以外の場合はn×fact(n-1)という形でnを1ずつ減らしながら自分自身を呼び出すことで求められる。 ア: n=0のとき0を返す定義は、0!=1という数学的事実に反しており誤りである。 イ: n=0のとき0を返しfact(n+1)を呼び出す定義は、基底条件も再帰の方向も誤っており、さらにnが増加し続け処理が終了しない。 ウ: 正しい。n=0のとき1を返し、それ以外はn×fact(n-1)を呼び出す定義がfact(n)の正しい再帰的定義である。 エ: n=0のとき1を返す点は正しいが、fact(n+1)を呼び出しているためnが増加し続け、再帰呼出しが終了しない誤った定義である。 💡 階乗の基底条件は0!=1であること、再帰呼出しはnを減らす方向(n-1)でなければ停止しないことの2点を必ず確認する。

出典:令和7年度 春期 応用情報技術者試験 午前 問7 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「アルゴリズムとプログラミング」分野の攻略ポイント

データ構造・アルゴリズム・探索と整列・計算量・擬似言語・プログラム言語・データ記述言語が対象です。擬似言語のトレースは時間はかかるものの、落ち着いて表を書けば必ず正解にたどり着く「確実に取れる」問題です。

アルゴリズムとプログラミングの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(アルゴリズムとプログラミング)の過去問