流れ図で示す処理を終了したとき,xの値はどれか。
(流れ図)
開始 → xを98とする → yを42とする → 繰返し x=y(注) → 判定 x:y → x>y のとき x-yの計算結果を新たなxとする / x≦y のとき y-xの計算結果を新たなyとする → 繰返し → 終了
(注)ループ端の条件は,終了条件を示す。
正答2
解説
正解は2です。
流れ図の処理を最後までたどり、終了時のxの値を求める問題です。
流れ図では、xを98、yを42とした後、x=yになるまで処理を繰り返します。
繰返しの中では、x>yならx-yを新たなxとし、x≦yならy-xを新たなyとします。
これは引き算を使って最大公約数を求めるユークリッドの互除法の処理です。
【計算】
1回目は、x=98、y=42でx>yなので、x=98-42=56になります。
2回目は、x=56、y=42でx>yなので、x=56-42=14になります。
3回目は、x=14、y=42でx≦yなので、y=42-14=28になります。
4回目は、x=14、y=28でx≦yなので、y=28-14=14になります。
x=14、y=14となり、終了条件x=yを満たすので繰返しを終了します。
終了時のxの値は14です。
【選択肢別解説】
1:× xが0になることはありません。
x=yになった時点で繰返しを終了するためです。
2:○ 処理をたどると、終了時のxは14になります。
14は98と42の最大公約数です。
3:× 28は4回目の処理の前のyの値であり、終了時のxではありません。
4:× 56は1回目の処理後のxの値であり、終了時のxではありません。
【ポイント】
ループ端の条件が「終了条件」であることに注意し、条件を満たした時点で処理をやめます。
大きい方から小さい方を引き続けて2数が等しくなったとき、その値が最大公約数になります。