Number Complement

Given a positive integer num, output its complement number. The complement strategy is to flip the bits of its binary representation.

 

Example 1:

Input: num = 5
Output: 2
Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.

Example 2:

Input: num = 1
Output: 0
Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.

 

Constraints:


Solution:

class Solution {
    public int findComplement(int num) {
        String s = Integer.toBinaryString(num);
        int n = 0;
        for (int i = 0; i < s.length(); i ++) {
            int curr = 1 - (s.charAt(i) - '0');
            if (curr == 1) {
                n += (int) Math.pow(2, s.length() - 1 - i);
            }
        }
        return n;
    }
}