基本情報トップに戻る
B難易度: 標準2026年度

基本情報技術者 予想問題B 第66問

問題

次の擬似言語の関数を g(4) として呼び出したとき、戻り値はいくつか。 整数型: g(整数型: n) if (n ≦ 1) return 1 endif return n × g(n - 1)

選択肢

  1. 1ア 4
  2. 2イ 10
  3. 3ウ 24
  4. 4エ 120

正解

3. ウ 24

詳しい解説を見る

解説

g(n)は、n≦1のとき1を返し、それ以外は n × g(n-1) を返す再帰関数であり、階乗を計算する。呼出しを順に展開すると、g(4) = 4 × g(3) = 4 × 3 × g(2) = 4 × 3 × 2 × g(1) となり、g(1)は基底条件 n≦1 に該当して1を返す。したがって 4×3×2×1 = 24 でウが正解である。エの120は5!でありg(5)を計算した場合、アの4は再帰を1段も展開しなかった場合の誤りである。再帰関数のトレースは、①基底条件に達するまで呼出しを展開する、②基底条件の戻り値から順に巻き戻して計算する、という2段階で考えるのが定石である。階乗とフィボナッチ数列は再帰の代表例として科目Bで繰り返し出題されており、基底条件の確認を最初に行う習慣が重要である。

一問一答

科目A 180問+科目B 60問

Bの関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。