関数f (x , y )が次のように定義されているとき、f (775, 527)の値は幾らか。
ここで、x mod y はx をy で割った余りを返す。
f (x , y ):if y = 0 then return x else return f (y , x mod y )
答え イ
【解説】
f (775, 527)を計算すると
- f (775, 527)はy が0でないので、
f (775, 527) = f (527, 775 mod 527) = f (527, 248)
- f (527, 248)はy が0でないので、
f (527, 248) = f (248, 527 mod 248) = f (248, 31)
- f (248, 31)はy が0でないので、
f (248, 31) = f (31, 248 mod 31) = f (31, 0)
- f (31, 0)はy が0なので、
f (31, 0) = 31
(イ)になる。
【キーワード】
・再帰的処理
【キーワードの解説】
- 再帰的処理(recursive)
処理(関数)の中で自分自身の処理を呼び出すことです。
再帰を使用することで、処理を単純に表すことができます。
もっと、「再帰的処理」について調べてみよう。
戻る
一覧へ
次へ
|