Given an integer N, the task is to find the smallest integer X such that it has no odd position set and X ≥ N.
Note: The positioning of bits is assumed from the right side and the first bit is assumed to be 0th bit.
Input: N = 9
16’s binary representation is 10000, which has its 4th bit
set which is the smallest number possible satisfying the given condition.
Input: N = 5
Input: N = 19
Approach: The problem can be solved using a greedy approach and some bit properties. The property that if smaller powers of two are taken exactly once and added up they can never exceed a higher power of two (e.g., (1 + 2 + 4) < 8). The following greedy approach is used to solve the above problem:
- Initially count the number of bits.
- Get the leftmost index of the set bit.
- If the leftmost set bit is at an odd index, then answer will always be (1 << (leftmost_bit_index + 1)).
- Else, greedily form a number by setting all the even bits from 0 to leftmost_bit_index. Now greedily remove a power of two from right to check if we get a number which satisfies the given conditions.
- If the above condition does not give us our number, then we simply set the next leftmost even bit and return the answer.
Below is the implementation of the above approach:
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Print odd positioned nodes of odd levels in level order of the given binary tree
- Count pairs (A, B) such that A has X and B has Y number of set bits and A+B = C
- Print even positioned nodes of odd levels in level order of the given binary tree
- Print odd positioned nodes of even levels in level order of the given binary tree
- Count of N-digit Numbers having Sum of even and odd positioned digits divisible by given numbers
- Check if a number has an odd count of odd divisors and even count of even divisors
- Find smallest number n such that n XOR n+1 equals to given k.
- Minimum bit flips such that every K consecutive bits contain at least one set bit
- Check if it is possible to create a matrix such that every row has A 1s and every column has B 1s
- Count numbers in given range such that sum of even digits is greater than sum of odd digits
- Smallest divisor D of N such that gcd(D, M) is greater than 1
- Smallest integer greater than n such that it consists of digit m exactly k times
- Print even positioned nodes of even levels in level order of the given binary tree
- Next greater number than N with exactly one bit different in binary representation of N
- Smallest number divisible by n and has at-least k trailing zeros
- Smallest number whose square has N digits
- Find the number of pairs such that their gcd is equals to 1
- Count of integers in a range which have even number of odd digits and odd number of even digits
- Count of even and odd set bit with array element after XOR with K
- Count of even and odd set bit Array elements after XOR with K for Q queries
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.