基本情報技術者 令和5年度公開問題科目A問11

科目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 です。
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする