関数 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)
ア 0 イ 31 ウ 248 エ 527
イ
引数の y が0になるまで、再帰的に関数を呼び出し、y が0になったら x を返すことになる。
f(775, 527) = f(527, 775 mod 527)
= f(527, 248) = f(248, 527 mod 248)
= f(248, 31) = f(31, 248 mod 31)
= f(31, 0) = 31
問5 | 目次 | 問7 |