LeetCode476.数字的补数

在这里插入图片描述
思路:
1.把数字的二进制求出来,进行翻转(1变0,0变1)然后求出来当前二进制的十进制

class Solution {
    public int findComplement(int num) {
        int sum = 0;
        int k = 0,t = 0;
        while(num > 0){
            k = num % 2;
            sum = sum + (1-k)*(int)Math.pow(2,t++);
            num = num/2;
        }
        return sum;
    }
}

2,就是求出当前二进制位数的全1二进制,与其进行异或运算,就可以实现反转。
别人的思路

发布了169 篇原创文章 · 获赞 5 · 访问量 7696

猜你喜欢

转载自blog.csdn.net/fsdgfsf/article/details/104545613
今日推荐