修了試験 2022-12-11実施分 基本情報技術者試験 問10
自然数nに対して,次のとおり再帰的に定義される関数f(n)を考える。 f(5)の値はどれか。 f(n):if n≦1 then return 1 else return n+f(n-1)
正答3
解説
正解は3です。 再帰的に定義された関数を、n=1になるまで展開して計算する問題です。 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です。 【選択肢別解説】 1:× 6は、f(3)の値(3+2+1)です。 f(5)ではさらに4と5を加えます。 2:× 9は、5+4のようにf(3)以降を加え忘れた値です。 再帰はf(1)に達するまで続きます。 3:○ 1から5までの和である15と一致します。 4:× 25は、5×5のように計算した値です。 この関数は掛け算ではなく、nから1までの足し算になります。 【ポイント】 この関数は1からnまでの和を求めるもので、f(n)=n(n+1)/2と同じ結果になります。まとめて解く
修了試験 2022-12-11実施分を通しで解く(80問)→