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

基本情報技術者試験 科目A免除 修了試験 20181209 実施分 問5

整数 x,y (x > y ≧ 0) に対して,次のように定義された関数 F(x, y) がある。F(231, 15) の値は幾らか。ここで,x mod y は x を y で割った余りである。
F(x, y) = x      (y = 0 のとき) F(x, y) = F(y, x mod y) (y > 0 のとき)
答えを選ぶ

出典:基本情報技術者試験 科目A免除 修了試験 20181209 実施分 問5(問題文は IPA の公開問題。解説は当サイト作成)

答えと解説を見る

正解:イ

覚える知識

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

F(x,y)は y=0 までx mod yで繰り返し、残ったxが最大公約数になる。

この問題で必要なこと

F(x,y)=F(y,x mod y) はユークリッドの互除法で、最大公約数を返す。gcd(231,15)=3。

ひっかけ

途中の剰余(6)や15の約数(5)を答えにさせる。

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

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

同じ知識の過去問