基本情報技術者令和元年秋期 午前問11

午前問11

自然数nに対して,次のように再帰的に定義される関数f(n)を考える。f(5)の値はどれか。

 f(n):if n≦1 then return 1 else return n+f(n−1)
  • [この問題の出題歴]
  • 基本情報技術者 H21春期 問8
  • 基本情報技術者 H27秋期 問8

分類

テクノロジ系 » アルゴリズムとプログラミング » アルゴリズム

正解

解説

再帰関数は、関数内で自分自身を読み出す構造になっている関数です。

設問の再帰関数 f(n) は以下のような処理を行います。
引数nが1以下のとき
1を返す
それ以外の場合
n+f(n−1)を返す
f(n)の部分を展開しながら地道に計算していくと次のようになります。

 f(5)
=5+f(4) //f(5)=5+f(4)
=5+4+f(3) //f(4)=4+f(3)
=5+4+3+f(2) //f(3)=3+f(2)
=5+4+3+2+f(1) //f(2)=2+f(1)
=5+4+3+2+1 //f(1)=1
=15

したがって、f(5)の値は15です。
© 2010-2020 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop