题目描述
写一个程序,判断是否为奇数。很简单的题目,但是实现可以有很多种,也很有意思。
思考
最简单的是这样的
1 | public static boolean (int i) { |
我们进一步观察,发现这一句i % 2 == 1
是boolean类型,那么可以优化成这样
1 | public static boolean (int i) { |
但是发现没有考虑负数的问题,于是再次修改
1 | public static boolean (int i) { |
仔细观察,再次优化
1 | public static boolean (int i) { |
一般面试写到这里就足够了。
然而,并没有这么简单。
朋友,你知道二进制吗?
移位运算符是比取模速度快的,再次改
1 | public static boolean (int i) { |
这个比较厉害,大部分人想不到这里,然而。。。
1 | public static boolean isOdd(int i) { |
& 都为1则为1,其它为0
逼格满分。
掌声。