说我0,1,2,3,4,5
与(5 to 0)
或(5 to 0)
的区别在于1
与(5 to 1)
或(1 to 5)
的差异为2
与(0 to 4)
或(4 to 0)
的差异为2
我似乎理解这一点的方法是,如果在任何值中使用了最后一个值或第一个值,则仅使用外包装差异。除此之外,与Math.abs
一起使用的正常工具应该没问题
例如Math.abs(1-3)
与(1 to 3)
的区别在于2
与(3 to 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);
答案 0 :(得分:1)
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。