You have been given an integer ‘NUM’. Your task is to find the number of bits which are ‘1’ in the binary representation of ‘NUM’.
Example:
Given ‘NUM = 9’
Binary representation of ‘9 = 1001’, so there are 2 times 1's present.
Print ‘2’ as the answer.
The first line contains a single integer ‘T’ representing the number of test cases.
The only line of each test case contains a single integer ‘NUM’ representing an integer whose number of bits which are ‘1’ in the binary representation you need to print.
Output Format:
For each test case print the number of bits ‘1’ in binary representation.
Print the output of each test case in a separate line.
Note:
You do not need to print anything; it has already been taken care of. Just implement the function.
1 <= T <= 10000
1 <= NUM <= 10^9
Time Limit: 1sec
4
1
2
17
11
1
1
2
3
Test case 1:
1’s binary representation is 1. The number of bits 1 in binary representation is 1. Therefore the answer is 1.
Test case 2:
2’s binary representation is 10. The number of bits 1 in binary representation is 1. Therefore the answer is 1.
Test case 3:
17’s binary representation is 10001. The number of bits 1 in binary representation is 2. Therefore the answer is 2.
Test case 4:
11’s binary representation is 1011. The number of bits 1 in binary representation is 3. Therefore the answer is 3.
2
15
100
4
3
Test case 1:
15’s binary representation is 1111. The number of bits 1 in binary representation is 4. Therefore the answer is 4.
Test case 2:
100’s binary representation is 1100100. The number of bits 1 in binary representation is 3. Therefore the answer is 3.
In each step check if the least significant bit is 1 and move to the next bit.
We will do the process till ‘NUM’ is greater than 0:
O(log(N)), time is taken where ‘N’ is the integer in the input.
As in each step, we divide number by 2 until it becomes zero.
O(1), constant space is used.
As we just need to store only the count of the number of bits which are 1.