VOOZH about

URL: https://www.geeksforgeeks.org/dsa/count-smaller-values-whose-xor-x-greater-x/

⇱ Count smaller values whose XOR with x is greater than x - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Count smaller values whose XOR with x is greater than x

Last Updated : 12 Jun, 2022

Given a integer 'x', find the number of values of 'a' satisfying the following conditions: 

  1. a XOR x > x
  2. 0 < a < x


Examples : 

Input : x = 10 
Output : 5
Explanation: For x = 10, following 5 values
 of 'a' satisfy the conditions:
 1 XOR 10 = 11
 4 XOR 10 = 14
 5 XOR 10 = 15
 6 XOR 10 = 12
 7 XOR 10 = 13 

Input : x = 2
Output : 1
Explanation: For x=2, we have just one value
 1 XOR 2 = 3.

Naive Approach 
A Simple approach is to check for all values of ‘a’ between 0 and ‘x’ and calculate its XOR with x and check if the condition 1 satisfies. 

Output : 

5


The time complexity of the above approach is O(x).

Auxiliary Space: O(1)

Efficient Approach 
The efficient solution lies in the binary representation of the number. We consider all 0's in binary representation. For every 0 at the i-th position, we can have 2i numbers smaller than or equal to x with greater XOR. 

Output :  

5


Time complexity: O(Log x).

Auxiliary Space: O(1)


 

Comment