程式語言 - LeetCode - C - 1318. Minimum Flips to Make a OR b Equal to c



參考資訊:
https://algo.monster/liteproblems/1318

題目:


解答:

int minFlips(int a, int b, int c)
{
    int r = 0;
    int i = 0;
    int t = (a | b) ^ c;

    for (i = 0; i < 32; i++) {
        if (t & 1) {
            r += 1;
            if ((a & 1) && (b &1)) {
                r += 1;
            }
        }

        t >>= 1;
        a >>= 1;
        b >>= 1;
    }

    return r;
}