程序员面试的那些小事ACM题库~笔试&&面试经验

有两个变量a、b,不用"if","

2017-02-10  本文已影响127人  关玮琳linSir

方法一:利用位运算,移位后,返回的就是其符号位

public static void main(String[] args) {
        int a = 8;
        int b = 50;
        int[] c = { a, b };
        int d = a - b;
        d = d >> 31;
        d = d * -1;
        System.out.println(c[d]);
    }

结果:

50

方法二:说一下啊,我不是很鼓励用,因为有点投机取巧的成分,看着是没用判断,但是内部是用了的

public static void main(String[] args) {
        int a = 7;
        int b = 3;
        int max = ((a + b) + Math.abs(a - b)) >> 1;
        System.out.println(max);

    }

结果:

7
上一篇下一篇

猜你喜欢

热点阅读