給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。
示例 1:輸入: 5
輸出: 2
解釋: 5 的二進位制表示為 101(沒有前導零位),其補數為 010。所以你需要輸出 2 。
示例 2:
輸入: 1
輸出: 0
解釋: 1 的二進位制表示為 1(沒有前導零位),其補數為 0。所以你需要輸出 0 。
# -*- coding: utf-8 -*-
#!/usr/bin/env python
"""@author: wowlnan
@github:
@blog:
"""class solution:
def findcomplement(self, num: int) -> int:
s = bin(num)
a = s[:2]
for i in range(2, len(s)):
digit=1^(int(s[i]))
a+=str(digit)
return int(a, 2)
這裡使用python內建函式bin直接轉為為 "0b****"的二進位制字元。手寫函式也很方便,除2取餘數,再取商重複,拼接起來是就是二進位制數。 476數字的補數
題目點我 給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5 輸出 2 解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1 輸出 0 解釋...
476 數字的補數
題目 給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位 示例 1 輸入 5輸出 2解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1輸出 0解釋 1的二進位...
476 數字的補數
給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5 輸出 2 解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1 輸出 0 解釋 1的二進...