LeetCode 342. Power of Four in F#

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