
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Next Greater Integer with One More Set Bit in C++
We are given a number n, we have to find the number that is greater than n with one more set bit than n in its binary representation.
The digit 1 in the binary representation is called set bit.
Let's see an example.
Input
124
Output
125
Algorithm
Initialise the number n.
Write a function get the count of number of set bits.
Initialise the iterative variable with n + 1.
-
Write an infinite loop.
Check for the number of set bits for numbers greater than n.
Return the number when you find it.
Implementation
Following is the implementation of the above algorithm in C++
#include <bits/stdc++.h> using namespace std; int getSetBitsCount(int n) { int count = 0; while (n) { if (n % 2 == 1) { count += 1; } n /= 2; } return count; } int getNextGreaterElementWithSameSetBits(int n) { int setBitsCount = getSetBitsCount(n); int i = n + 1; while (true) { if (setBitsCount + 1 == getSetBitsCount(i)) { return i; } i += 1; } } int main() { int n = 124; cout << getNextGreaterElementWithSameSetBits(n) << endl; return 0; }
Output
If you run the above code, then you will get the following result.
125
Advertisements