可能重复:
负数模式正在融化我的大脑!
我想知道我正在尝试做的事情是否有更好的算法:
wrapIndex(-6, 3) = 0 wrapIndex(-5, 3) = 1 wrapIndex(-4, 3) = 2 wrapIndex(-3, 3) = 0 wrapIndex(-2, 3) = 1 wrapIndex(-1, 3) = 2 wrapIndex(0, 3) = 0 wrapIndex(1, 3) = 1 wrapIndex(2, 3) = 2 wrapIndex(3, 3) = 0 wrapIndex(4, 3) = 1 wrapIndex(5, 3) = 2
我想出了
函数 wrapIndex(i, i_max) {
如果(我 > -1)
返回 i%i_max;
变量 x = i_max + i%i_max;
如果(x == i_max)
返回0;
返回 x;
}
有没有更好的方法来做到这一点?