Number Complement(#476)

编号 名称 等级
476 Number Complement Easy

思路

没思路

为什么大神说这个显而易见的呢?严重怀疑我的智商。 Math.pow() 是用来将二进制转化为十进制。但是为什么是 i<num ? 因为i的值为 1 3 7 15 … 而原来的数的二进制 101 和 反码 010 相加为 111 为 7。 所以用相加的值减去原来的值就是 反码 的值

代码

代码为 Description 中的。

public class Solution {
    public int findComplement(int num) {
        int i = 0;
        int j = 0;
        while (i < num){
            i += Math.pow(2, j);
            j++;
        }
        return i - num;
    }
}