アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20180722 実施分 問7
自然数nに対して,次のとおり再帰的に定義される関数 f(n) を考える。f(5)の値はどれか。
f(n): if n≦1 then return 1 else return n+f(n−1)
f(n): if n≦1 then return 1 else return n+f(n−1)
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20180722 実施分 問7(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:ウ
覚える知識
再帰関数のトレース計算
再帰関数は終了条件に達するまで自分自身を呼び、戻り値を順に足し上げる。
この問題で必要なこと
f(5)=5+f(4)=5+4+3+2+f(1)で、f(1)=1だから15。
ひっかけ
f(1)の値を0とみなす、または階乗のように乗算とみなす誤り。
この知識の出題:本試験系 8 回・免除試験 11 回(公開問題での観測値)