Number of integers with odd number of set bits Number of integers with odd number of set bits Number of integers with odd number of set bits

Given a number n, count number of integers smaller than or equal to n that have odd number of set bits.

Examples :

Input : 5
Output : 3
Explanation :
Integers with odd number of 
set bits in range 1 to 5 :
0 contains 0 set bits
1 contains 1 set bits
2 contains 1 set bits
3 contains 2 set bits
4 contains 1 set bits
5 contains 2 set bits

Input : 10
Output : 5
Explanation :
Integers with odd set bits are 1, 2,
4, 7 and 8.

Prerequisites : Count number of set bits

The idea is based on below fact.

If n is odd then there are total n+1 integers smaller than or equal to n (0, 1, 2 … n) and half of these integers contain odd number of set bits.

How to handle case when n is even? We know result for n-1. We count set bits in n and add 1 to n/2 if the count is odd. Else we return n/2.

Output:

5


My Personal Notes arrow_drop_up

Recommended Posts:


    Article Tags :
    Practice Tags :



    1


    Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.