題目描述:
給定n個非負整數,將這n個數字按二進位制下的1的個數分類,二進位制下1的個數相同屬於同一類,求最後共有幾類數字。
輸入:
1 有幾組數
5 每一組數有幾個數
8 3 5 7 2 每組數下的數
輸出:3
實現(python):
定義乙個函式可以返回乙個數二進位制下1的個數,遍歷陣列,就可以返回這組數下的所有二進位制的個數,最後按個數進行分組。
def count(num):
cnt = 0
while num:
if num & 1 == 1:
cnt += 1
num = num >> 1
return cnt
n=int(input())
for i in range(n):
m=int(input())
nums=[int(ele) for ele in input().split()]
ret=
for item in nums:
print(len(set(ret)))
二進位制 二進位制中1的個數
題目 請實現乙個函式,輸入乙個整數,輸出該數二進位制表示中 1 的個數。例如,把 9 表示成二進位制是 1001,有 2 位是 1。因此,如果輸入 9,則該函式輸出 2。示例 1 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 0000000...
二進位制1的個數
輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。可能引起死迴圈的解法 class solution return cnt 由於數字在計算機中的二進位制儲存事實上並不包含符號 也就是 都是統一用補碼表示的。移位操作會保證數的正負不變,當遇到乙個負數,右移到最前面的符號位1時,再往右移...
(筆試題)二進位制1的個數相同的距離最小數
輸入 整數a 輸出 整數b 條件 a和b的二進位制1的個數相同,且a和b之間的距離 a b 最小。題目沒有說明整數型別,這裡認為是帶符號的整數,即區分正負數。根據題意,a和b的二進位制1的個數相同,且要求距離最小,那麼a和b的差別就在於相鄰的bit位,如1100和1010,0011和0101等。當a...