Minimum Flips to Make a OR b Equal to c(C++ 或运算的最小翻转次数)

解题思路:

(1)逐次按位判断

class Solution {
public:
    int minFlips(int a, int b, int c) {
        int i=0,count=0;
        while(i<32) {
            int x=a&1,y=b&1,z=c&1;
            if((x|y)!=z) {
                if(x==1 && y==1 && z==0) count+=2;
                else count++;
            }
            i++;
            a>>=1;
            b>>=1;
            c>>=1;
        }
        return count;
    }
};

猜你喜欢

转载自blog.csdn.net/coolsunxu/article/details/114685248