试图解决“近距离”练习

时间:2016-01-22 12:37:24

标签: java

给定三个整数,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

1 个答案:

答案 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