ループするように整数を変更して配列位置を取得しようとしています。正i %
arrayLength
の数の場合は問題なく動作しますが、負の数の場合はすべてうまくいきません。
4 % 3 == 1
3 % 3 == 0
2 % 3 == 2
1 % 3 == 1
0 % 3 == 0
-1 % 3 == -1
-2 % 3 == -2
-3 % 3 == 0
-4 % 3 == -1
だから私はの実装が必要です
int GetArrayIndex(int i, int arrayLength)
そのような
GetArrayIndex( 4, 3) == 1
GetArrayIndex( 3, 3) == 0
GetArrayIndex( 2, 3) == 2
GetArrayIndex( 1, 3) == 1
GetArrayIndex( 0, 3) == 0
GetArrayIndex(-1, 3) == 2
GetArrayIndex(-2, 3) == 1
GetArrayIndex(-3, 3) == 0
GetArrayIndex(-4, 3) == 2
私は前にこれをやったことがありますが、何らかの理由で今日は私の脳が溶けています:(