mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-12-18 17:20:16 +00:00
35 lines
755 B
Python
35 lines
755 B
Python
|
def get_set_bits_count(number: int) -> int:
|
||
|
"""
|
||
|
Count the number of set bits in a 32 bit integer
|
||
|
>>> get_set_bits_count(25)
|
||
|
3
|
||
|
>>> get_set_bits_count(37)
|
||
|
3
|
||
|
>>> get_set_bits_count(21)
|
||
|
3
|
||
|
>>> get_set_bits_count(58)
|
||
|
4
|
||
|
>>> get_set_bits_count(0)
|
||
|
0
|
||
|
>>> get_set_bits_count(256)
|
||
|
1
|
||
|
>>> get_set_bits_count(-1)
|
||
|
Traceback (most recent call last):
|
||
|
...
|
||
|
ValueError: the value of input must be positive
|
||
|
"""
|
||
|
if number < 0:
|
||
|
raise ValueError("the value of input must be positive")
|
||
|
result = 0
|
||
|
while number:
|
||
|
if number % 2 == 1:
|
||
|
result += 1
|
||
|
number = number >> 1
|
||
|
return result
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
import doctest
|
||
|
|
||
|
doctest.testmod()
|