
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 with Binary Representation: m-1's and m-1 0's in C++
In this tutorial, we are going to write a program that finds the largest number with m 1's and m - 1 0's.
Let's see the steps to solve the problem.
- Initialise two variables bits and result with 2 and 1 respectively.
- Write a loop that iterates from 1 to n.
- Update the iterating variable value with pow(2, bits) - 1) * (pow(2, bits - 1).
- If the iterative variable is less than n, then update the result with i.
- Increment the bits count.
- Return resutl.
Example
Let's see the code.
#include <bits/stdc++.h> using namespace std; long long getTheNumber(long long n) { long bits = 2; long long result = 1; long long i = 1; while (i < n) { i = (int)(pow(2, bits) - 1) * (pow(2, bits - 1)); if (i < n) { result = i; } bits++; } return result; } int main() { long long n = 654; cout << getTheNumber(n) << endl; return 0; }
Output
If you run the above code, then you will get the following result.
496
Conclusion
If you have any queries in the tutorial, mention them in the comment section.
Advertisements