我试图对一个整数进行mod,以获得一个数组位置,这样它就会循环。对于正数来说,执行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
我以前也这样做过,但由于某种原因,今天它让我的大脑融化了:
https://stackoverflow.com/questions/1082917
复制相似问题