इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो m 1's और m-1 0's के साथ सबसे बड़ी संख्या ढूँढता है।
आइए समस्या को हल करने के लिए चरणों को देखें।
- दो वैरिएबल बिट्स को इनिशियलाइज़ करें और क्रमशः 2 और 1 के साथ परिणाम दें।
- एक लूप लिखें जो 1 से n तक पुनरावृत्त हो।
- पाउ(2, बिट्स) - 1) * (पाउ (2, बिट्स -1) के साथ पुनरावृत्त चर मान को अपडेट करें।
- यदि पुनरावृत्त चर n से कम है, तो परिणाम को i से अपडेट करें।
- बिट्स की संख्या बढ़ाएं।
- वापसी परिणाम.
उदाहरण
आइए कोड देखें।
#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; }
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
496
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।