ITパスポート 平成21年度 春期 問72
アルゴリズムとプログラミング
アルゴリズムに関する問題
図 1 のように二つの正の数値 A1,A2 を読み取り,二つの数値 B1,B2 を出力するボックスがある。B1 には A2 と同じ数値を出力し,B2 には A1 を A2 で割った余りを出力する。図 2 のようにこのボックスを 2 個つないだ場合,A1=15,A2=6 のとき後方のボックスの B1 に出力される数値は幾らか。
〔図1〕
A1 ──→┌─────────────────────┐──→ B1
│ A2 → B1 │
A2 ──→│ A1/A2 の余り → B2 │──→ B2
└─────────────────────┘
〔図2〕
15 ──→┌────────┐──→┌────────┐──→ B1
│ 前方 │ │ 後方 │
6 ──→└────────┘──→└────────┘──→ B2
前方の B1 が後方の A1 に,前方の B2 が後方の A2 につながる。- ア 0
- イ 3
- ウ 6
- エ 15
答えと解説
✓ これが正解イ 3
解説
箱の問いは、一段ずつ手で回して値を書き出していきます。
この箱は、二つ目の数をそのまま上の出口へ送り出し、下の出口へは一つ目を二つ目で割った余りを出す決まりです。前の箱に十五と六を入れると、上の出口には六が出ます。十五を六で割った余りは三で、それが下の出口へ出ます。その二つがそのまま後ろの箱の入り口へつながるので、後ろの箱には六と三が入り、上の出口には三が出ます。問われているのは後ろの上の出口なので、三を挙げた選択肢が正解です。零は後ろの下の出口に出る値で、六を三で割れば割り切れるので余りは零になります。六は前の箱の上の出口に出た値です。この箱を繰り返すと最大公約数が求まり、アルゴリズムの型になります。割り切れて余りが零になったとき、直前の数が答えになり、十五と六の最大公約数は三です。
ほかの選択肢の解説
- ア 0:零は確かにどこかに現れる値ですが、出てくるのは後ろの箱の下の出口です。六を三で割るとちょうど割り切れて余りが零になり、問われている上の出口とは違います。
- ウ 6:六は途中に現れた値で、前の箱の上の出口から出てきた数です。それが後ろの箱の一つ目の入り口へ入り、後ろの上の出口には別の値が出てきます。
- エ 15:十五は最初に入れた値で、箱をひとつも通っていない数です。前の箱の時点で既に六と三へ変わっているので、後ろの出口にそのまま出ることはありません。
関連用語
- アルゴリズム問題を解くための、決まった手順や考え方そのものです。
出典:平成21年度 春期 ITパスポート試験 問72(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
同じ分野の問題
誤りを見つけたら報告する