基本情報技術者試験 - 令和4年12月修了 - 問10

自然数nに対して,次のとおり再帰的に定義される関数 f(n) を考える。f(5) の値はどれか。

 f(n):if n≦1 then return 1 else return n+f(n-1)
ア6
イ9
ウ15
エ25
答え : ウ
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズム
同一問題 : 〔令1秋問11〕〔平30修7問7〕〔平27秋問8〕〔平21春問8〕
解説 :
この関数 f(n) は,nが1以下であれば1を返し,それ以外の場合はnと f(n-1) の和を返すという再帰的な定義になっています。

f(5) を求めるには,まず f(5) が f(4) に5を足した値であることに着目し,さらに f(4) が f(3) に4を足した値,f(3) が f(2) に3を足した値,f(2) がf(1) に2を足した値というように,再帰的にさかのぼって計算していきます。最終的にf(1)は,条件よりnが1以下であるため1を返します。

ここから逆にたどっていくと,f(2) は1に2を足した3,f(3) は3に3を足した6,f(4) は6に4を足した10,f(5) は10に5を足した15となります。従って,f(5) の値は15であり,選択肢「ウ」が正解です。

この関数は,実は1からnまでの整数を全て足し合わせた合計値を計算していることと同じであるため,公式である n×(n+1)÷2 という式を使っても,5×6を2で割った15という同じ答えを得ることができます。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる