可能重复:
负数模式正在融化我的大脑!
我想知道我正在尝试做的事情是否有更好的算法:
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; }
有没有更好的方法来做到这一点?