令和元年秋期試験午前問題 問11
問11解説へ
自然数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)
- 6
- 9
- 15
- 25
広告
再帰関数は、関数内で自分自身を読み出す構造になっている関数です。
設問の再帰関数 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です。
設問の再帰関数 f(n) は以下のような処理を行います。
- 引数nが1以下のとき
- 1を返す
- それ以外の場合
- n+f(n-1)を返す
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です。