平成26年度 秋期 午前Ⅱ 問10
アルゴリズムとプログラミング
初期値aとbの関係
次の流れ図において,①→②→③→⑤→②→③→④→②→⑥の順に実行させるために,①においてmとnに与えるべき初期値aとbの関係はどれか。ここで,a,bはともに正の整数とする。
流れ図:
(開始) ↓ ① a→m b→n ↓ ② ◇ m:n ──(≠)──→ ③ ◇ m:n │ ├─(>)→ ④ m−n→m ──→ ②へ戻る │ └─(<)→ ⑤ n−m→n ──→ ②へ戻る ↓(=) ⑥ ▱ mの値を印字 ↓ (終了)
- アa=2b
- イ2a=b
- ウ2a=3b
- エ3a=2b
答えと解説を見る
✓ これが正解エ3a=2b
解説
m<n、m>n、等しい、の順に進む条件から、3a=2bが導けます。
指定された順路を一つずつ式で追います。①でm=a、n=bとします。②で等しくなく、③で⑤へ進むので、まずm<n、つまりa<bです。⑤でn=b−aになります。次に②で等しくなく、今度は③で④へ進むのでm>n、つまりa>b−aです。④でm=a−(b−a)=2a−bになります。その後②で等しくなって⑥へ進むので、2a−b=b−aが成り立ち、整理すると3a=2bです。例えばa=2、b=3とすると、n=1、m=1と変わって等しくなり、指定どおりの順路になります。この流れ図は引き算を繰り返して最大公約数を求める処理で、流れ図の問題は小さな値で一度トレースすると確かめられます。
ほかの選択肢はなぜ違うのか
- アa=2b:a=2bでは最初からm>nなので、①の次は②③④と進みます。例えばa=2、b=1なら④でm=1となって等しくなり、⑤を一度も通らずに終わるため、指定の順路になりません。
- イ2a=b:2a=bではm<nから始まるので⑤へ進み、n=b−a=aとなってすぐmと等しくなります。例えばa=1、b=2で試すと、④を通らずに⑥へ進み、順路が途中で終わってしまいます。
- ウ2a=3b:2a=3bではm>nから始まります。例えばa=3、b=2なら④でm=1、次に⑤でn=1となり、④と⑤を通る順番が指定の順路と逆になります。
出典:平成26年度 秋期 システムアーキテクト試験 午前Ⅱ 問10
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)