アルゴリズムとプログラミング

基本情報技術者試験 科目A免除 修了試験 20211212 実施分 問47

次の流れ図において, ① → ② → ③ → ⑤ → ② → ③ → ④ → ② → ⑥ の順に実行させるために,①において m と n に与えるべき初期値 a と b の関係はどれか。ここで,a,b はともに正の整数とする。
流れ図: 開始 → ① m ← a, n ← b → ② 判断「m : n」 = のとき → ⑥ 「m の値を印字」(平行四辺形)→ 終了 ≠ のとき → ③ 判断「m : n」 < のとき → ⑤ n ← (n − m) → ②の手前(ループ合流点)へ戻る > のとき → ④ m ← (m − n) → ②の手前(ループ合流点)へ戻る
答えを選ぶ

出典:基本情報技術者試験 科目A免除 修了試験 20211212 実施分 問47(問題文は IPA の公開問題。解説は当サイト作成)

答えと解説を見る

正解:エ

覚える知識

ユークリッドの互除法のトレースと初期値関係

引き算による互除法で、指定された分岐順序になる初期値を逆算すると比が定まる。

この問題で必要なこと

②→③→⑤(n<m:n←n−m)→②→③→④(m>n:m←m−n)→②→⑥(m=n)。n−m=nとすると、b>aかつ(b−a)<a かつ a−(b−a)=b−a より2a−b=b−a?を整理すると3a=2b。

ひっかけ

m<nの分岐方向を取り違え、a=2b等を選ぶ。

この知識の出題:本試験系 6 回・免除試験 19 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「数値を扱うアルゴリズムと計算問題」で学ぶ

同じ知識の過去問