アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20160612 実施分 問48
次の流れ図において,
① → ② → ③ → ⑤ → ② → ③ → ④ → ② → ⑥
の順に実行させるために,①においてmとnに与えるべき初期値aとbの関係はどれか。ここで,a,bはともに正の整数とする。
流れ図。開始 → ①[a→m, b→n] → ②判定[m:n]。②で「=」なら ⑥[mの値を印字] → 終了。②で「≠」なら ③判定[m:n]。③で「>」なら ④[m−n→m] → ②へ戻る。③で「<」なら ⑤[n−m→n] → ②へ戻る。
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20160612 実施分 問48(問題文は IPA の公開問題。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:エ
覚える知識
ユークリッドの互除法のトレースと初期値関係
ユークリッドの互除法は、2数の大きい方から小さい方を引く操作を等しくなるまで繰り返して最大公約数を求める。
この問題で必要なこと
流れ図は大きい方から小さい方を引く互除法。3a=2b(例:a=2,b=3)で、m<nの引算→m>nの引算→一致の順に実行される。
ひっかけ
初期値の大小関係から、最初の分岐(③で>か<か)を取り違える。
この知識の出題:本試験系 6 回・免除試験 19 回(公開問題での観測値)。頻出知識ランキング46位(全1,254件中)。