Leetcode#476. Number Complement(求补码)

来源:互联网 发布:emergency mode ubuntu 编辑:程序博客网 时间:2024/05/16 09:31

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

Note:

  1. The given integer is guaranteed to fit within the range of a 32-bit signed integer.
  2. You could assume no leading zero bit in the integer’s binary representation.

Example 1:

Input: 5Output: 2Explanation: 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: 1Output: 0Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.wod

我的代码:

class Solution {public:       int findComplement(int num)    {        int a[100]={0},sum=0,k=0;        while(num)        {            a[k++]=!(num%2);            num/=2;        }        for(int i=k-1;i>=0;i--)            sum=sum*2+a[i];        return sum;    }};