假设我的含义值限制为 0,1,2,3,4,5
与(5 to 0)
或(5 to 0)
的区别是1
与(5到1)
或(1到5)
的区别是2
与(0到4)
或(4到0)
的区别是2
我似乎理解这一点的方式是,如果在任何值中使用最后一个值或第一个值,则仅使用覆盖差异。除此之外,与 Math.abs
一起使用的普通应该没问题
如Math.abs(1-3)
与(1到3)
的区别是2
与(3到4)
的区别是1
我似乎无法理解如何对覆盖差异部分进行编程。
我尝试过这个,但没什么特别的,我认为带有模数运算符的东西可以工作,但我似乎无法弄清楚
int value_one = 0;
int value_two = 5;
int answer = Math.abs(value_one - value_two);
answer = (((answer % 5) + 5) % 5) + 1;
System.out.println(answer);
int answer2 = (value_one + value_two) % 5;
System.out.println(answer2);
最佳答案
int v1 = Math.min(value_one, value_two);
int v2 = Math.max(value_one, value_two);
int answer = Math.min(v2 - v1, v1 + values.length - v2);
其中values.length是{0, 1, 2, 3, 4, 5}的长度,即6。
关于java - 如何查找 2 个值与溢出/覆盖值、模数的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22001668/