0
長さがsize
の配列とその配列のインデックスがn
の場合、どのようにインデックスをラップすると、常にsize-1
の範囲内になるのですか?正の数値の場合は、単にn % size
ですが、n
が負の場合、後ろに折り返す方法はありますか?私が作ってみた何配列のサイズに負のインデックスをラップする
:n <= size
ため
int wrap(int size, int n) {
if (n >= 0)
return n % size;
else
return abs(size + n) % size;
}
しかし、これだけで動作します。どのようにそれをn
のために働かせるには?
予想される出力:
wrap(4, -1) == 3
wrap(4, -2) == 2
wrap(4, -3) == 1
wrap(4, -4) == 0
wrap(4, -5) == 3
wrap(4, -6) == 2
wrap(4, -7) == 1
wrap(5, -8) == 0