我在一个从0到5的循环中有一组索引。如果用户指定的索引大于5,例如7,则应该返回索引7-6=1。如果指定的索引小于0,ex -2,则应返回索引-2+6=4。
在第一种情况下,我们可以使用余数运算符来处理大于5的值:
int inputValue = 7;
int result = inputValue%6;但是,是否有类似的操作可以很好地处理指定索引低于0的情况?一个棘手的解决方案是:
if (inputValue < 0)
result = inputValue+6;
else
result = inputValue;这只处理大于或等于-6的值
发布于 2020-06-19 15:02:17
如果你将一个负数乘以6,你会得到一个负数,但你只需要在它上面加上6就可以得到你的正余数:
int result = (inputValue % 6) + (inputValue < 0? 6 : 0);或者,使用将6与正余数相加的事实来得到具有相同余数的数字:
int result = ((inputValue % 6) + 6) % 6;希望这能有所帮助!
https://stackoverflow.com/questions/62464818
复制相似问题