当看到这个题 很明显就能想到
if(unm % 2 == 0){
return true;
}else{
return false;
}
那么如果继续优化 我们都知道 计算机都是2进制计算 那么我们可以从二进制入手
2 ----> 0010 ; 4------->0100 ; 3-------->0011 ; 5------->0101
那么优化之后的代码 是不是就是 判断转换二进制之后的 最后一位是不是0即可
String binarySystemString = Integer.toBinaryString(num);
if (binarySystemString.endsWith("0")){
return true;
}else {
return false;
}
那么我们继续想 这样虽然是2进制了 但是 还是有进步空间 我们都知道 按位运算是计算机中最快的运算 那么我们可以用按位与解决该问题么
我们都知道 1 -------> 0001
2 ----> 0010 ; 4------->0100 ; 3-------->0011 ; 5------->0101
1&2 —>0000 ; 1&4----->0000 ; 1&3 ---->0001 ; 1&5 ----->0001
两个数的二进制同为1,结果才为1,否则为0
那么我们只需要判断 这个数和1异或之后的数是否为0即可
所以
if((num & 1) == 0){
return true;
}else{
return false;
}