次の流れ図において,
①→②→③→⑤→②→③→④→②→⑥
の順に実行させるために,①においてmとnに与えるべき初期値aとbの関係はどれか。
ここで,a,bはともに正の整数とする。
〔流れ図の概要〕開始→①m←a,n←b→②m:n(=なら⑥mの値を印字して終了/≠なら③へ)→③m:n(>なら④m←(m−n)後②へ/<なら⑤n←(n−m)後②へ)
正答4
解説
正解は4です。
流れ図は、mとnが等しくなるまで、大きい方から小さい方を引き続ける処理です。
これはユークリッドの互除法と同じ考え方で、aとbの最大公約数を求める処理になっています。
指定された実行順序をたどりながら、mとnの値の変化を式で追います。
【処理の流れ】
①でmにa、nにbが入ります。
最初の②ではm≠nなので、③に進みます。
③から⑤に進むので、m<n、つまりa<bです。
⑤でnにb-aが入ります。
2回目の②もm≠nで③に進み、今度は④に進むので、m>n、つまりa>b-aです。
④でmにa-(b-a)=2a-bが入ります。
3回目の②でm=nとなって⑥に進むので、2a-b=b-aです。
これを整理すると、3a=2bになります。
【選択肢別解説】
1:× a=2bでは、最初の比較でm>nとなり、③から④に進みます。
⑤に進むという指定の順序になりません。
2:× 2a=bでは、⑤でnにb-a=aが入り、2回目の②でm=nとなって終了します。
④を通らないので、指定の順序になりません。
3:× 2a=3bでは、a>bなので最初の③から④に進みます。
⑤に進むという指定の順序になりません。
4:○ 3a=2bは、たどった条件から導いた関係と一致します。
例えばa=2、b=3とすると、nが1、mが1と変化し、指定どおりの順序で終了します。
【ポイント】
流れ図の実行順序の問題は、分岐ごとに成り立つ条件を不等式や等式で書き出すと解けます。
最後に選択肢の具体的な数値を当てはめて、順序どおりに動くかを確かめると確実です。