इस ट्यूटोरियल में, हम एक ऐसा प्रोग्राम लिखेंगे जो दी गई संख्या x से छोटी वह सबसे बड़ी संख्या ढूंढता है जिसमें अधिकतम k सेट बिट्स हों।
आइए इस समस्या को हल करने के चरण देखते हैं।
- संख्याओं x और k को इनिशियलाइज़ करें।
- संख्या x में सेट बिट्स की संख्या ज्ञात करें।
- एक लूप लिखें जो x के सेट बिट्स की संख्या - k बार चले।
- x के मान को x & (x - 1) से अपडेट करें।
- x वापस करें।
उदाहरण
आइए कोड देखते हैं।
#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; }आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम मिलेगा।
65
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें कमेंट सेक्शन में लिखें।