修了試験 2019-07-28実施分 基本情報技術者試験 問7
次に示すユークリッドの互除法(方法1,方法2)で,正の整数a,bの最大公約数は,それぞれmとnのどちらの変数に求まるか。 ここで,m mod nは,mをnで割った余りを表す。 (方法1のフローチャート:開始→m←a, n←b→r←m mod n→ループ1(r=0)→m←n→n←r→r←m mod n→ループ1→終了) (方法2のフローチャート:開始→m←a, n←b→ループ2→r←m mod n→m←n→n←r→r=0 ループ2→終了)

正答3
解説
正解は3です。 図の方法1は、ループ1の開始記号に終了条件r=0が書かれた前判定の繰返しです。 方法2は、ループ2の終端記号に終了条件r=0が書かれた後判定の繰返しです。 例としてa=12、b=8(最大公約数4)で処理をたどります。 【計算】 方法1:m=12、n=8とし、r=12 mod 8=4です。 r≠0なので繰返しに入り、m=8、n=4、r=8 mod 4=0となります。 r=0になったので終了し、このときm=8、n=4です。 最大公約数4はnに求まります。 方法2:m=12、n=8とし、r=4、m=8、n=4とします。 r≠0なので繰り返し、r=8 mod 4=0、m=4、n=0とします。 r=0になったので終了し、このときm=4、n=0です。 最大公約数4はmに求まります。 【選択肢別解説】 1:× 方法1では、終了時のmは割り切る前の値8で、最大公約数ではありません。 2:× 方法1はnで正しいものの、方法2のnは終了時に0になっています。 3:○ 方法1はnに、方法2はmに最大公約数が求まります。 4:× 方法2では、最後にm←n、n←rを実行するので、最大公約数はmに移っています。 【ポイント】 余りを求めた直後に判定する方法1では、割る数nが答えです。 代入を済ませてから判定する方法2では、答えがmに移ります。まとめて解く
修了試験 2019-07-28実施分を通しで解く(80問)→