我试图对一个整数取模,以便得到一个数组位置,使其能够循环。对于正数来说,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)
< p >这样的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
我以前做过这个,但出于某种原因,今天它让我感到很棘手:(