応用情報技術者令和2年秋期 午前問47

午前問47

次の流れ図において,
 ①→②→③→⑤→②→③→④→②→⑥
の順に実行させるために,①においてmとnに与えるべき初期値aとbの関係はどれか。ここで,a,bはともに正の整数とする。
47.gif/image-size:406×284
  • [この問題の出題歴]
  • 基本情報技術者 H18春期 問42
  • ソフトウェア開発技術者 H14春期 問53

分類

テクノロジ系 » アルゴリズムとプログラミング » アルゴリズム

正解

解説

指定の順序通りに進むと次のように処理されていきます。
  1. m ← a,n ← b
  2. m<n で⑤の処理に進む
    n ← n−m
  3. m>n で④の処理に進む
    m ← m−n
  4. m=nとなり処理終了
⑤でnを1回更新、④でmを1回更新して、⑥の段階でm=nとなります。

まず直前の④の処理について考えます。
「m ← m−n」という処理をしているので、"更新前のm"の値は、"更新後のm"と"n"の和です。④の処理後は m=n になっていますから、"更新前のm"の値は 2n で表すことができます。

次に⑤の処理について考えます。
「n ← n−m」という処理をしているので、"更新前のn"の値は、"更新後のn"と"m"の和です。m=2n ですから、"更新前のn"の値は 3n で表すことができます。

これより前にはm及びnを更新する処理はないので、処理開始時に m:n=2:3 であれば最終的に m=n となることがわかります。mはa、nはbが代入される変数なので初期値aとbの関係は a:b=2:3、これを式に変換した「3a=2b」が正解です。
© 2010-2021 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop