図1のように二つの正の数値 A1, A2 を読み取り, 二つの数値 B1, B2 を出力するボックスがある。B1 には A2 と同じ数値を出力し, B2 には A1 を A2 で割った余りを出力する。図2のようにこのボックスを2個つないだ場合, A1=15, A2=6 のとき後方のボックスの B1 に出力される数値は幾らか。 図1: 入力 A1, A2 → 「A2→B1」「A1/A2の余り→B2」→ 出力 B1, B2。 図2: 入力 15, 6 → ボックス1 → ボックス2 → 出力 B1, B2。
平成21年度 春期 ITパスポート試験 問72
这道题的解析和你的作答记录。
問72
頻出度★★☆
解説
問 72
错误ア
0 是后面那个方框的 B2 输出的值。后面的方框接收 A1=6、A2=3,所以 B2=6÷3 的余数=0;但题目问的是后面那个方框的 B1,这里把两个输出端弄混了。
- イ
正解 正确答案是 イ(3)。图1 规定的方框规则只有两条:「B1 直接输出 A2」「B2 输出 A1÷A2 的余数」。图2 中,15 和 6 分别进入前面那个方框的 A1、A2,前面方框的 B1 接到后面方框的 A1,前面方框的 B2 接到后面方框的 A2。按顺序推算,前面的方框输出 B1=A2=6、B2=15÷6 的余数=3。因此后面的方框接收到 A1=6、A2=3,其 B1 按规则与 A2 相同,所以是 3(顺带一提,后面方框的 B2 是 6÷3 的余数=0)。这类题目不要死记图中的规则,而应像列表格一样按第 1 级、第 2 级机械地把数值逐个写出来,这样最稳妥。
错误ウ
6 是前面那个方框的 B1 输出的值(即最初的 A2 原样输出),也就是作为后面那个方框的 A1 输入的值。这是只算到第 1 级就停下来的答案,并不是后面那个方框的 B1。
错误エ
15 就是最初给出的 A1 本身。方框的规则是把 A2 输出到 B1,所以 A1 的值不会原样出现在 B1 上;15 只是在前面那个方框中用于求「除以 6 的余数」,用过之后就不再出现。
ここがポイント
- 对于用图给出输入输出规则的处理方框类题目,要老老实实地套用规则,逐级把数值写出来。本题只需按第 1 级、第 2 级的顺序,套用 B1=A2(把 A2 原样传给下一级)和 B2=A1÷A2 的余数这两条规则,就能解出来。
- 把这种方框串联起来的结构,正是不断把两个数替换为 (A1, A2) → (A2, A1÷A2 的余数) 的辗转相除法(欧几里得算法,即求最大公约数的步骤)本身。余数变为 0 时的除数就是最大公约数,实际上 15 和 6 的最大公约数正是 3。
用語