Minimum Flips to Make a OR b Equal to c (the minimum number of flips in C++ or operation)

Problem-solving ideas:

(1) Judgment by position successively

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;
    }
};

 

Guess you like

Origin blog.csdn.net/coolsunxu/article/details/114685248