ITパスポート試験 / 令和4年度 ITパスポート試験 公開問題 / 問79
certification-simodake-work

令和4年度 ITパスポート試験 公開問題 問79 解説 アルゴリズムと流れ図

設問図

流れ図で示す処理を終了したとき,x の値はどれか。

  1. 0
  2. 14 ✓ 正答
  3. 28
  4. 56

解説

この問題は、与えられた初期値 x=98x=98y=42y=42 を使い、流れ図の指示に従って引き算を繰り返すことで解くことができます。

手順は以下の通りです。

  1. x=98,y=42x=98, y=42 です。x>yx > y なので xy=9842=56x - y = 98 - 42 = 56 を新たな xx とします。(x=56,y=42x=56, y=42)
  2. x>yx > y なので xy=5642=14x - y = 56 - 42 = 14 を新たな xx とします。(x=14,y=42x=14, y=42)
  3. x<yx < y なので yx=4214=28y - x = 42 - 14 = 28 を新たな yy とします。(x=14,y=28x=14, y=28)
  4. x<yx < y なので yx=2814=14y - x = 28 - 14 = 14 を新たな yy とします。(x=14,y=14x=14, y=14)
  5. x=yx = y となったためループを終了し、答えは 1414 となります。

この処理は、数学で習うユークリッドの互除法を、引き算のみを使って表現したものです。本来のユークリッドの互除法は「余りを求める割り算」を繰り返しますが、この図のように「大きい方から小さい方を引く」ことでも同じ結果(最大公約数)が得られます。

アルゴリズム問題において、今回のようなトレース(値を一つずつ追いかける作業)は非常に重要です。ITパスポート試験では、複雑な数式をいきなり解くのではなく、問題文にある手順を紙の隅に書き出しながら、変数の値がどう変化するかを順を追ってシミュレーションすることが正解への近道となります。

また、最大公約数や最小公倍数を求める処理は、プログラムを作成する際に数値の整理や効率化の目的でよく利用されます。もし試験中に似たようなループ構造を見かけたら、それが何の計算を行おうとしているのか(最大公約数なのか、合計値なのか、あるいはデータの並び替えなのか)を推測しながら追跡してみてください。

  • 統計数理研究所:ユークリッドの互除法
  • ITパスポート試験ドットコム:アルゴリズムの基礎知識(擬似言語とフローチャート)

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう