Count smaller values whose XOR with x is greater than x | C ++ program to find count of values whose XOR with x is greater than x and values are smaller than x ; Initialize result ; Traversing through all bits of x ; If current last bit of x is set then increment count by n . Here n is a power of 2 corresponding to position of bit ; Simultaneously calculate the 2 ^ n ; Replace x with x / 2 ; ; Driver code
#include <bits/stdc++.h> NEW_LINE using namespace std ; int countValues ( int x ) { int count = 0 , n = 1 ; while ( x != 0 ) { if ( x % 2 == 0 ) count += n ; n *= 2 ; x /= 2 ; } return count ; } int main ( ) { int x = 10 ; cout << countValues ( x ) ; return 0 ; }