leetcode 476. 數字的補數(Number Complement)
阿新 • • 發佈:2019-03-25
沒有 urn 解釋 輸出 數字 += clas num str
目錄
- 題目描述:
- 示例 1:
- 示例 2:
- 解法:
題目描述:
給定一個正整數,輸出它的補數。補數是對該數的二進制表示取反。
註意:
- 給定的整數保證在32位帶符號整數的範圍內。
- 你可以假定二進制數不包含前導零位。
示例 1:
輸入:
5
輸出:
2
解釋:
5的二進制表示為101(沒有前導零位),其補數為010。所以你需要輸出2。
示例 2:
輸入: 1 輸出: 0 解釋: 1的二進制表示為1(沒有前導零位),其補數為0。所以你需要輸出0。
解法:
class Solution { public: int findComplement(int num) { int multi = 1; int res = 0; while(num != 0){ if((num&1) == 0){ res += multi; } num >>= 1; multi <<= 1; } return res; } };
leetcode 476. 數字的補數(Number Complement)