令和元年度 秋期 基本情報技術者試験 午前 問11
テクノロジ/アルゴリズム自然数 n に対して,次のとおり再帰的に定義される関数 f(n) を考える。f(5) の値はどれか。 f(n): if n≦1 then return 1 else return n + f(n−1)
出典:令和元年度 秋期 基本情報技術者試験 午前 問11
- ア6
- イ9
- ウ15
- エ25
正解:ウ
解説
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 と取り違えた場合の値です。