ITパスポート 令和4年度 問79 の解説テクノロジ系/アルゴリズムとプログラミング
流れ図で示す処理を終了したとき、xの値はどれか。

この設問が問うていること
2つの整数の最大公約数を求めるユークリッドの互除法アルゴリズムのトレースについて問う設問です。
総合解説
この流れ図は、2つの整数の最大公約数(GCD)を求める「ユークリッドの互除法」を表しています。 与えられた初期値 $x=98$, $y=42$ に従ってトレースを行います。 ・ループ開始($x \neq y$ の間繰り返す) ・1回目: $98 \neq 42$ なので継続。$x > y$($98 > 42$)なので、「はい」に進み、$x \leftarrow 98 - 42 = 56$ となる($x=56$, $y=42$)。 ・2回目: $56 \neq 42$ なので継続。$x > y$($56 > 42$)なので、「はい」に進み、$x \leftarrow 56 - 42 = 14$ となる($x=14$, $y=42$)。 ・3回目: $14 \neq 42$ なので継続。$x > y$($14 > 42$)ではないため「いいえ」に進み、$y \leftarrow 42 - 14 = 28$ となる($x=14$, $y=28$)。 ・4回目: $14 \neq 28$ なので継続。$x > y$($14 > 28$)ではないため「いいえ」に進み、$y \leftarrow 28 - 14 = 14$ となる($x=14$, $y=14$)。 ・5回目: $x=y$($14=14$)となったため、条件 $x \neq y$ が偽となりループを終了します。 終了時の $x$ の値は 14 です。したがって、選択肢bが正解です。
アルゴリズムとプログラミングをまとめて学ぶ
アルゴリズムとプログラミング 重点教科書 →
データ構造・擬似言語・探索と整列アルゴリズム・プログラム言語・HTML/XML/JSONまで、ITパスポートのアルゴリズム分野を体系的に解説します。