過去問解きまくり研究所 ホーム

平成25年度 秋期 午前 問7

アルゴリズム

配列に関する問題

次の規則に従って配列の要素 A[0],A[1],… ,A[9] に正の整数 k を格納する。k として 16,43,73,24,85 を順に格納したとき,85 が格納される場所はどこか。ここで,x mod y は,x を y で割った剰余を返す。また,配列の要素は全て 0 に初期化されている。

〔規則〕

(1) A[k mod 10] = 0 ならば,k を A[k mod 10] に格納する。
(2) (1)で格納できないとき,A[(k+1) mod 10] = 0 ならば,k を A[(k+1) mod 10] に格納する。
(3) (2)で格納できないとき,A[(k+4) mod 10] = 0 ならば,k を A[(k+4) mod 10] に格納する。

答えと解説を見る

✓ これが正解エA[9]

解説

規則を順に当てると三つ目の候補の場所に入ります。

最後の値だけを見ても答えは決まりません。先に格納された四つの値がどこを埋めたかで、空いている場所が変わるからです。順に追うと、16は6番目の箱へ、43は3番目の箱へ入ります。73は3番目が塞がっているので一つ隣の4番目へ、24は4番目が塞がっているので一つ隣の5番目へ入ります。最後の85は、剰余がそのまま指す5番目も、1を足して求める6番目も既に埋まっているため、二つの規則をどちらも使えません。そこで4を足して求める三つ目の候補が使われ、そこは空いているので格納されます。判定の軸は、各値の格納先を先に表として書き出せているかどうかです。

ほかの選択肢はなぜ違うのか

出典:平成25年度 秋期 基本情報技術者試験 午前 問7

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)