java - 如何查找 2 个值与溢出/覆盖值、模数的差异

标签 java math modulus difference absolute-value

假设我的含义值限制为 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/

相关文章:

PHP:包装每组 3 个元素

php - openssl:如何从模数中获取公钥

algorithm - 如何检查大十进制数是否可以除以 2^x 或 5^x

java - 无法在 JBoss 上的 Resteasy 客户端上设置超时

java - 线程间通信问题

algorithm - 如何找到两个素数 p 和 q,其中 p 和 q 足够大并且 q 整除 p − 1?

java - 如何获得交通模拟中的曲线半径?

javascript - 如何在Canvas中绘制半径对称的六条线?

Java:重写祖 parent 的方法

java - 使用 java 将 XML 转换为 XLSX,反之亦然