問79
頻出度★★☆
流れ図で示す処理を終了したとき,x の値はどれか。 開始 ↓ x を 98 とする ↓ y を 42 とする ↓ 繰返し(x = y)(注) ↓ (分岐)x : y ・「>」の場合: x - y の計算結果を新たな x とする ・「≦」の場合: y - x の計算結果を新たな y とする ↓ 繰返し ↓ 終了 (注)ループ端の条件は,終了条件を示す。
这道题的解析和你的作答记录。
流れ図で示す処理を終了したとき,x の値はどれか。 開始 ↓ x を 98 とする ↓ y を 42 とする ↓ 繰返し(x = y)(注) ↓ (分岐)x : y ・「>」の場合: x - y の計算結果を新たな x とする ・「≦」の場合: y - x の計算結果を新たな y とする ↓ 繰返し ↓ 終了 (注)ループ端の条件は,終了条件を示す。
x 不会变成 0。这个处理不是把除法余数变为 0 的步骤,而是不断用大的一方减去小的一方直到两者相等的辗转相减法,所以最后停在最大公约数 14,不会到达 0。
正解 这个流程图是用只使用减法的欧几里得算法(辗转相减法)求 98 和 42 的最大公约数的处理。根据(注),当 x = y 时循环终止。在分支 x : y 中,当 x > y 时把 x - y 赋给 x,当 x ≦ y 时把 y - x 赋给 y。从 x = 98、y = 42 开始依次追踪:首先 98 > 42,所以 x = 98 - 42 = 56;接着 56 > 42,所以 x = 56 - 42 = 14;然后 14 ≦ 42,所以 y = 42 - 14 = 28;再接着 14 ≦ 28,所以 y = 28 - 14 = 14,此时 x = y(14 = 14)成立而终止。因此终止时 x 的值为 14,选项イ正确。
28 是中途赋给 y 的值(42 - 14 = 28),而不是所问的 x 的值。而且处理并不在此结束,还会继续到 y = 28 - 14 = 14。
56 只是第 1 次计算中赋给 x 的中间过程值(98 - 42 = 56)。此时还没有达到 x = y,循环不会终止,所以不是最终值。