इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो सबसे बड़ी संख्या को ढूंढता है जो दिए गए 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
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।