Skip to content

Commit d3ac521

Browse files
add count_number_of_one_bits.py (TheAlgorithms#4195)
* count-bits * update
1 parent f66325a commit d3ac521

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
def get_set_bits_count(number: int) -> int:
2+
"""
3+
Count the number of set bits in a 32 bit integer
4+
>>> get_set_bits_count(25)
5+
3
6+
>>> get_set_bits_count(37)
7+
3
8+
>>> get_set_bits_count(21)
9+
3
10+
>>> get_set_bits_count(58)
11+
4
12+
>>> get_set_bits_count(0)
13+
0
14+
>>> get_set_bits_count(256)
15+
1
16+
>>> get_set_bits_count(-1)
17+
Traceback (most recent call last):
18+
...
19+
ValueError: the value of input must be positive
20+
"""
21+
if number < 0:
22+
raise ValueError("the value of input must be positive")
23+
result = 0
24+
while number:
25+
if number % 2 == 1:
26+
result += 1
27+
number = number >> 1
28+
return result
29+
30+
31+
if __name__ == "__main__":
32+
import doctest
33+
34+
doctest.testmod()

0 commit comments

Comments
 (0)