アルゴリズムとプログラミング

平成29年度 春期 基本情報技術者試験 午前 問6

関数 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

出典:平成29年度 春期 基本情報技術者試験 午前 問6

答えと解説を見る

正解:イ

覚える知識

ユークリッドの互除法のトレースと初期値関係

ユークリッドの互除法は、x mod y を繰り返してyが0になった時点のxを最大公約数とする。

この問題で必要なこと

f(x,y)=f(y,x mod y) は最大公約数を求める。775と527の最大公約数は31。

ひっかけ

途中の余りや初期値のどちらかを答えに取り違える。

この知識の出題:本試験系 6 回・免除試験 19 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「数値を扱うアルゴリズムと計算問題」で学ぶ

同じ知識の過去問