IPA過去問ドリル

令和元年度 秋期 基本情報技術者試験 午前 問11

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

自然数 n に対して,次のとおり再帰的に定義される関数 f(n) を考える。f(5) の値はどれか。 f(n): if n≦1 then return 1 else return n + f(n−1)

出典:令和元年度 秋期 基本情報技術者試験 午前 問11

正解:ウ

解説

f(n) は n≦1 のとき1を返し,そうでなければ n+f(n−1) を返す再帰関数です。順に展開すると f(5)=5+f(4),f(4)=4+f(3),f(3)=3+f(2),f(2)=2+f(1),f(1)=1 となります。まとめると f(5)=5+4+3+2+1=15 です。

選択肢ごとの解説

  • 誤り。6は f(3)=3+2+1 の値で,展開を途中で止めた場合の値です。
  • 誤り。9は展開の途中(例えば f(4) の一部)を足し忘れた場合に現れる値です。
  • 正しい。5+4+3+2+1=15 です。
  • 誤り。25は n+f(n−1) を n×n と取り違えた場合の値です。
基本情報技術者の過去問を演習モードで解く