平成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]に格納する。
出典:平成25年度 秋期 基本情報技術者試験 午前 問7
- アA[3]
- イA[5]
- ウA[6]
- エA[9]
正解:エ
解説
規則に従って格納すると,16→A[6],43→A[3](43 mod 10=3が空き),73→(1)は73 mod 10=3が使用中なので(2)の74 mod 10=4に格納,24→(1)の4は使用中,(2)の25 mod 10=5に格納,85→(1)の5は使用中,(2)の86 mod 10=6も使用中,(3)の(85+4) mod 10=9が空きなのでA[9]に格納されます。
選択肢ごとの解説
- ア誤り。A[3]には43が格納されており,85が入る場所ではありません。
- イ誤り。A[5]には24が格納されており,85が入る場所ではありません。
- ウ誤り。A[6]には16が格納されており,85が入る場所ではありません。
- エ正しい。85は(1)(2)ともに格納先が使用中のため(3)の規則が適用され,(85+4) mod 10=9のA[9]に格納されます。