題目描述:
每個非負整數 n 都有其二進位制表示。例如, 5 可以被表示為二進位制 「101」,11 可以用二進位制 「1011」 表示,依此類推。注意,除 n = 0 外,任何二進位制表示中都不含前導零。
二進位制的反碼表示是將每個 1 改為 0 且每個 0 變為 1。例如,二進位制數 「101」 的二進位制反碼為 「010」。
給你乙個十進位制數 n,請你返回其二進位制表示的反碼所對應的十進位制整數。
示例 1:
輸入:5
輸出:2
解釋:5 的二進位制表示為 「101」,其二進位制反碼為 「010」,也就是十進位制中的 2 。
示例 2:
輸入:7
輸出:0
解釋:7 的二進位制表示為 「111」,其二進位制反碼為 「000」,也就是十進位制中的 0 。
示例 3:
輸入:10
輸出:5
解釋:10 的二進位制表示為 「1010」,其二進位制反碼為 「0101」,也就是十進位制中的 5 。
0 <= n < 10^9
方法1:
主要思路:
(1)找出n中對應位上的數字,若是0,則將1加到對應的結果中,知道n右移到為0結束迴圈;
class
solution
int res=0;
int index=0;
while
(n)++index;
//權重
n>>=1;
//右移更新
}return res;}}
;
1009 十進位制整數的反碼
每個非負整數 n 都有其二進位制表示。例如,5 可以被表示為二進位制 101 11 可以用二進位制 1011 表示,依此類推。注意,除 n 0 外,任何二進位制表示中都不含前導零。二進位制的反碼表示是將每個 1 改為 0 且每個 0 變為 1。例如,二進位制數 101 的二進位制反碼為 010 給定...
Leetcode1009 十進位制整數的反碼
每個非負整數 n 都有其二進位制表示。例如,5 可以被表示為二進位制 101 11 可以用二進位制 1011 表示,依此類推。注意,除 n 0 外,任何二進位制表示中都不含前導零。二進位制的反碼表示是將每個 1 改為 0 且每個 0 變為 1。例如,二進位制數 101 的二進位制反碼為 010 給定...
LeetCode1009 十進位制整數的反碼
每個非負整數n都有其二進位制表示。例如,5可以被表示為二進位制 101 11可以用二進位制 1011 表示,依此類推。注意,除n 0外,任何二進位制表示中都不含前導零。二進位制的反碼表示是將每個1改為0且每個0變為1。例如,二進位制數 101 的二進位制反碼為 010 給定十進位制數n,返回其二進位...