Leetcode-1012 Complement of Base 10 Integer(十进制整数的补码)

 1 #define _for(i,a,b) for(int i = (a);i < (b);i ++)
 2 class Solution
 3 {
 4     public:
 5         int bitwiseComplement(int N)
 6         {
 7             if(N==0)
 8                 return 1;
 9             string s;
10             while(N)
11             {
12                 s+= N%2+'0';
13                 N/=2;
14             }
15             reverse(s.begin(),s.end());
16         
17             _for(i,0,s.size())
18             {
19                 if(s[i]=='0')
20                 {
21                     s[i] = '1';
22                 }
23                 else
24                     s[i] = '0';
25             }
26             
27             int rnt = 0;
28             for(int i = 0 ;i < s.size();i ++)
29             {
30                 rnt += (s[i]-'0')*pow(2,s.size()-i-1);
31               //  cout << rnt << endl;
32             }
33             return rnt;
34         }
35 };

 

posted @ 2019-03-17 12:55  Asurudo  阅读(176)  评论(0编辑  收藏  举报