2007年(平成19年) 秋期 基本情報技術者 午前 問15

整数x 、y (x > y ≥ 0)に対して、次のような定義された関数F(x 、y )がある。
F(231、15)の値は幾らか。
ここで、x mod y はx をy で割った余りである。

 ア  2  イ  3  ウ  5  エ  7


答え イ


【解説】
この問題は解いていくしか方法がありません。
 F(231, 15) = F(15, 231 mod 15)
= F(15, 6) = F(6, 15 mod 6) = F(6, 3)
= F(3, 6 mod 3) = F(3, 0) = 3(イ)


【キーワード】
・再帰呼び出し

【キーワードの解説】
  • 再帰呼び出し(recursive call)
    関数が自身の処理の中で、自分自身を呼び出し実行することです。
    再帰呼び出しでプログラムを記述すると、見た目がすっきりするというメリットがありますが、実際の動作は関数を呼び出すためにスタックが消費されたり、関数の呼び出しに時間がかかるのでそれほどのメリットはありません。
    再帰呼び出しの例としてはパズルのハノイの塔やクイックソートがあります。

もっと、「再帰呼び出し」について調べてみよう。

戻る 一覧へ 次へ