leetcode 476 數字的補數

2021-09-01 08:02:24 字數 979 閱讀 7177

給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。

注意:

給定的整數保證在32位帶符號整數的範圍內。

你可以假定二進位制數不包含前導零位。

示例 1:

輸入:5輸出:2解釋:5的二進位制表示為101(沒有前導零位),其補數為010。所以你需要輸出2。
示例 2:

輸入:1輸出:0解釋:1的二進位制表示為1(沒有前導零位),其補數為0。所以你需要輸出0。
思路:利用求餘和除數將 num 轉換成二進位制的數,將其儲存在 char 型別的字元陣列中,然後遍歷陣列,將 0 換 1,1 換 0,最後用 integer 的方法 parseint() 輸出結果。

**:

class solution 

char a = s.tochararray();

for(int i = 0;i < a.length;i++)else

}string b = new string(a);

return integer.parseint(b,2);

}}

大神思路:首先用 integer 的 highestonebit() 方法獲取二進位制的 1 的最高位,例如 5 的最高位是 4 ,然後將其左移一位後        減  1 ,利用和 num 二進位制位數一樣的全 1 和 num 的二進位制位數進行異或。

**:

class solution 

}

LeetCode 476 數字的補數

給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5 輸出 2 解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1 輸出 0 解釋 1的二進...

Leetcode 476 數字的補數

給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5 輸出 2 解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1 輸出 0 解釋 1的二進...

LeetCode 476 數字的補數

給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5 輸出 2 解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1 輸出 0 解釋 1的二進...