正解は ウ
再帰関数の値を求める問題です。f(n) は「n が1以下なら1を返し、そうでなければ n に f(n−1) を加えて返す」と定義されています。再帰関数は、自分自身の呼び出しが基底条件(ここでは n ≦ 1)に到達するまで展開し、そこから順に値を確定させていくのが基本の解き方です。f(5) を展開すると、f(5) = 5 + f(4)、f(4) = 4 + f(3)、f(3) = 3 + f(2)、f(2) = 2 + f(1) となり、f(1) は基底条件 n ≦ 1 に該当するので1を返します。ここから逆にたどると、f(2) = 2+1 = 3、f(3) = 3+3 = 6、f(4) = 4+6 = 10、f(5) = 5+10 = 15 となります。つまり f(5) は 5+4+3+2+1、すなわち1から5までの総和を計算する関数であることが分かります。ウが正解です。再帰問題は展開の途中でメモを書き、基底条件から値を巻き戻すことが確実な解法です。
再帰関数は「基底条件まで展開 → 逆順に値を確定」が鉄則。f(2)=3 のような小さい値で検算してから本番の値を計算すると取り違えを防げる。