class Solution {
public:
int findComplement(int num) {
int numBits=0;
int complNum=0;
for(int i=0; i<32; i++){
if(num>=pow(2, i) && num<pow(2, i+1)){
numBits=i+1;
}
}
for(int i=0; i<numBits; i++){
if((num&(1<<i))^(1<<i)){
complNum+=pow(2, i);
}
}
return complNum;
}
};
一开始numbits和complNum没有赋初值总是跑不到正确的结果。