修了試験 2018-07-22実施分 基本情報技術者試験 問7
自然数nに対して,次のとおり再帰的に定義される関数f(n)を考える。 f(5)の値はどれか。 f(n): if n≦1 then return 1 else return n+f(n-1)
正答3
解説
正解は3です。 f(n)は、nが1以下なら1を返し、それ以外は n+f(n-1) を返す再帰関数です。 つまり、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 です(n≦1 のため)。 戻りながら計算すると、f(2)=3、f(3)=6、f(4)=10、f(5)=15 です。 【選択肢別解説】 1:× 6は f(3) の値であり、f(5) ではありません。 2:× 9は 5+4 までで再帰を打ち切った値で、f(3) 以下の分が足りません。 3:○ 5+4+3+2+1=15 なので、f(5)=15 です。 4:× 25は5×5であり、和ではなく積として計算した値です。 【ポイント】 再帰関数は、終了条件(ここでは n≦1)に達するまで呼び出しを展開し、戻りながら値を組み立てます。 n+f(n-1) は和、n×f(n-1) なら階乗になります。まとめて解く
修了試験 2018-07-22実施分を通しで解く(80問)→