科目A問11
次の流れ図において,① → ② → ③ → ⑤ → ② → ③ → ④ → ② → ⑥の順に実行させるために,①において m と n に与えるべき初期値 a と b の関係はどれか。ここで,a,b はともに正の整数とする。

| a = 2b | |
| 2a = b | |
| 2a = 3b | |
| 3a = 2b |
『情報処理過去問.com』からiPhoneアプリがリリースされました!!
正解
- エ
解説
この流れ図は、mとnを「大きい方から小さい方を引く」を繰り返して同じ値にし、最終的に最大公約数(m=nになった値)を出す処理です(減算法のユークリッド互除法)。
指定された実行順
①→②→③→⑤→②→③→④→②→⑥
になるための条件を、値の推移で追います。
1. ①で初期化
m=a, n=b
2. ②で「≠」へ進むので
a≠b
3. ③→⑤ なので、③では m
⑤で n←(n−m) より
m=a, n=b−a
4. 次に ②→③→④ なので、再び「≠」かつ③では m>n
つまり
a > b−a ⇒ 2a>b
5. ④で m←(m−n)
m = a − (b−a) = 2a−b
n = b−a
6. 次の②で「=」になって⑥へ行くので
2a−b = b−a
⇒ 3a = 2b
よって、正しい関係は エ:3a = 2b です。
指定された実行順
①→②→③→⑤→②→③→④→②→⑥
になるための条件を、値の推移で追います。
1. ①で初期化
m=a, n=b
2. ②で「≠」へ進むので
a≠b
3. ③→⑤ なので、③では m
m=a, n=b−a
4. 次に ②→③→④ なので、再び「≠」かつ③では m>n
つまり
a > b−a ⇒ 2a>b
5. ④で m←(m−n)
m = a − (b−a) = 2a−b
n = b−a
6. 次の②で「=」になって⑥へ行くので
2a−b = b−a
⇒ 3a = 2b
よって、正しい関係は エ:3a = 2b です。