次の規則に従って配列の要素A[0]、A[1]、・・・・、A[9]に正の整数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[3] |
イ | A[5] |
ウ | A[6] |
エ | A[9] |
16,43,73,24,85 を規則に従い、順に格納していく。
k=16 | A[16 mod 10]=A[6] | 16をA[6]にセットする |
k=43 | A[43 mod 10]=A[3] | 43をA[3]にセットする |
k=73 | A[73 mod 10]=A[3] A[3]には値が入っているので、規則2より A[(73+1) mod 10]=A[4] |
73 A[4]にセットする |
k=24 | A[24 mod 10]=A[4] A[4]には値が入っているので、規則2より A[(24+1) mod 10]=A[5] |
24をA[5]にセットする |
k=85 | A[85 mod 10]=A[5] A[5]には値が入っているので、規則2より A[(85+1) mod 10]=A[6] A[6]には値が入っているので、規則3より A[(85+4) mod 10]=A[9] |
85をA[9]にセットする |