1. 程式人生 > >劍指offer-10-Python實現(二進位制中1的個數)

劍指offer-10-Python實現(二進位制中1的個數)

題目內容:

這裡寫圖片描述

解答思路:
把一個整數減去1,再和原來的整數做位與運算,會把該整數最右邊一個1變成0.也就是說,一個整數的二進位制有多少個1,就可以完成多少次這樣的操作。

可以寫出程式碼:

def func(n):
    cnt = 0
    while n:
        n = (n-1)&n
        cnt +=1   
    return cnt

print  func(13)

#output:3