以 JS 为例,目前想到的有以下几种:
return !(num % 2)
return /^\d*[24680]$/.test(num) // 或者 !/^\d*\.5$/.test(num/2)
return !(num & 1) // 或者 ~num & 1
return num >> 1 << 1 == num
还有什么骚操作?
递归写法:
function isEven(n) {
return n == 0 ? true : (n == 1 ? false: isEven(Math.abs(n - 2)));
}
异或写法:
return (n ^ 1) == n + 1;