题目不让用递归和循环。
都提到 2 的幂了,也很快联想到二进制、位运算,不过依然需避开循环。
function isPowerOfTwo(n: number): boolean { // 100 & 011 => 0 // 以此类推 return n > 0 && (n & n - 1) === 0 }
根本没想到的方法。
function isPowerOfTwo(n: number): boolean { const BIG = 1 << 30 return n > 0 && BIG % n === 0 }