
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
Largest Number Less Than X Having At Most K Set Bits in C++
In this tutorial, we are going to write a program that finds the largest number which is less than given x and should have at most k set bits.
Let's see the steps to solve the problem.
- Initialise the numbers x and k.
- Find the set bits in the number x.
- Write a loop that iterates set bits count of x - k.
- Update the value of x with x & (x - 1).
- Return x.
Example
Let's see the code.
#include <bits/stdc++.h> using namespace std; int largestNumberWithKBits(int x, int k) { int set_bit_count = __builtin_popcount(x); if (set_bit_count <= k) { return x; } int diff = set_bit_count - k; for (int i = 0; i < diff; i++) { x &= (x - 1); } return x; } int main() { int x = 65, k = 2; cout << largestNumberWithKBits(x, k) << endl; return 0; }
Output
If you run the above code, then you will get the following result.
65
Conclusion
If you have any queries in the tutorial, mention them in the comment section.
Advertisements