给定三个整数,a b c,如果b或c中的一个是“接近”(与最多1个不同)则返回true,而另一个是“远”,与其他值相差2或更多。注意:Math.abs(num)计算数字的绝对值。
closeFar(1, 2, 10) → true
closeFar(1, 2, 3) → false
closeFar(4, 1, 3) → true
答案 0 :(得分:0)
你基本上需要将a与b和c(using Math.abs(a-b)
和using Math.abs(a-c)
)进行比较,然后检查其他值是否相差至少2.这样的事情:
public static boolean closeFar(int a, int b, int c) {
return ( (Math.abs(a-b) == 1 && (Math.abs(a-c) >= 2 && Math.abs(b-c) >= 2) ||
(Math.abs(a-c) == 1 && (Math.abs(a-b) >= 2 && Math.abs(b-c) >= 2)))
);
}
测试用例:
System.out.println(closeFar(1,2,10)); //prints true
System.out.println(closeFar(1,2,3)); //prints false
System.out.println(closeFar(4,1,3)); //prints true