URL
Power of Four - LeetCode
Code
https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/challenge/202310/power_of_four/main.fsx
let isPowerOfFour (n: int) : bool =
let countBit n =
let n = (n &&& 0x55555555) + ((n >>> 1 &&& 0x55555555))
let n = (n &&& 0x33333333) + ((n >>> 2 &&& 0x33333333))
let n = (n &&& 0x0F0F0F0F) + ((n >>> 4 &&& 0x0F0F0F0F))
let n = (n &&& 0x00FF00FF) + ((n >>> 8 &&& 0x00FF00FF))
let n = (n &&& 0x0000FFFF) + ((n >>> 16 &&& 0x0000FFFF))
n
let bits = countBit n
bits = 1 && (n &&& 0xAAAAAAAA) = 0