IPA過去問ドリル

平成30年度 秋期 システムアーキテクト試験 午前Ⅱ 問11

テクノロジ/アルゴリズム

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

平成30年度 秋期 システムアーキテクト試験 午前Ⅱ 問11の図

出典:平成30年度 秋期 システムアーキテクト試験 午前Ⅱ 問11

正解:エ

解説

①で m=a,n=b とした後,②で m と n を比較し,等しくなければ③でさらに大小を比較して,m<n なら⑤(n-m→n),m>n なら④(m-n→m)を実行し,②へ戻るという処理を繰り返し,m=n になった時点で⑥へ進み m の値を印字します(互除法的な減算アルゴリズム)。 設問の実行順序①→②→③→⑤→②→③→④→②→⑥をたどると,1 回目の②で m≠n(a≠b),③で m<n(a<b)となって⑤が実行され,n は b-a に更新されます。2 回目の②で m≠n(a≠(b-a)),③で今度は m>n(a>b-a)となって④が実行され,m は a-(b-a)=2a-b に更新されます。3 回目の②で m=n となって⑥に進むためには,2a-b=b-a,すなわち 3a=2b が成り立つ必要があります。

選択肢ごとの解説

  • 誤り。a=2b では,設問の順序どおりに②③④⑤が分岐せず,異なる実行順序になってしまいます。
  • 誤り。2a=b では,設問の順序どおりに②③④⑤が分岐せず,異なる実行順序になってしまいます。
  • 誤り。2a=3b では,設問の順序どおりに②③④⑤が分岐せず,異なる実行順序になってしまいます。
  • 正しい。1 回目に⑤(n-m→n)が実行され,2 回目に④(m-n→m)が実行された後,m=n となって⑥に至るための条件を整理すると,3a=2b が導かれます。
システムアーキテクトの過去問を演習モードで解く