平成23年度 秋期 基本情報技術者試験 午前 問6
テクノロジ/アルゴリズム次の規則に従って配列の要素 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]とする。
出典:平成23年度 秋期 基本情報技術者試験 午前 問6
- アA[3]
- イA[5]
- ウA[6]
- エA[9]
正解:エ
解説
規則に従って16,43,73,24,85を順に格納します。16→A[6],43→A[3],73→A[3]は使用済みなのでA[4],24→A[4]は使用済みなのでA[5],85→A[5]は使用済みなのでA[6]も使用済みのため(3)の規則でA[(85+4) mod 10]=A[9]に格納されます。
選択肢ごとの解説
- ア誤り。A[3]は43の格納時点で既に使用されており,85の格納先ではありません。
- イ誤り。A[5]は24の格納時点で既に使用されており,85の格納先ではありません。
- ウ誤り。A[6]は16の格納時点で既に使用されており,85の格納先ではありません(85 mod 10=5,(85+1) mod 10=6のどちらも使用済みのため(3)の規則が適用されます)。
- エ正しい。85 mod 10=5(使用済み),(85+1) mod 10=6(使用済み)なので(3)の規則により(85+4) mod 10=9のA[9]に格納されます。