package q1318 func minFlips(a int, b int, c int) int { aorb := a | b flips := 0 p := 1 for p <= aorb || p <= c { switch { case c|p == c && aorb|p != aorb: flips++ // c has the bit case c|p != c && aorb|p == aorb: if a|p == a { flips++ // a has the bit } if b|p == b { flips++ // b has the bit } } p <<= 1 } return flips } var _ = minFlips