自然数 nnn に対して、次のとおり再帰的に定義される関数 f(n)f(n)f(n) を考える。f(5)f(5)f(5) の値はどれか。
f(n):if n≤1 then return 1 else return n+f(n−1)f(n): \text{if } n \le 1 \text{ then return } 1 \text{ else return } n + f(n-1)f(n):if n≤1 then return 1 else return n+f(n−1)
6
9
15
25
f(n)f(n)f(n) は 1 から nnn までの合計を求める関数になっています。 順に計算すると: f(1)=1f(1) = 1f(1)=1 f(2)=2+f(1)=2+1=3f(2) = 2 + f(1) = 2 + 1 = 3f(2)=2+f(1)=2+1=3 f(3)=3+f(2)=3+3=6f(3) = 3 + f(2) = 3 + 3 = 6f(3)=3+f(2)=3+3=6 f(4)=4+f(3)=4+6=10f(4) = 4 + f(3) = 4 + 6 = 10f(4)=4+f(3)=4+6=10 f(5)=5+f(4)=5+10=15f(5) = 5 + f(4) = 5 + 10 = 15f(5)=5+f(4)=5+10=15
したがって、正解は「ウ」です。