自然数nに対して,次のとおり再帰的に定義される関数f(n)を考える。
f(5)の値はどれか。
f(n) : if n≦1 then return 1 else return n+f(n-1)
正答3
解説
正解は3です。
再帰的に定義された関数f(n)の値を求める問題です。
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)は、nが1以下なので1を返します。
したがって、f(5)=5+4+3+2+1=15です。
【選択肢別解説】
1:× 6はf(3)=3+2+1の値です。
f(5)まで計算すると15になります。
2:× 9は5+4にとどまり、f(3)以降を足していない値です。
3:○ 5から1までを順に足すので、f(5)は15です。
4:× 25は5×5の値で、この関数の定義とは関係ありません。
【ポイント】
この関数は1からnまでの和を求めるもので、f(n)=n(n+1)÷2と同じ値になります。
再帰関数は、終了条件(ここではn≦1)に達するまで式を展開してから、逆順に値を戻すと計算しやすくなります。