Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में X से छोटी सबसे बड़ी संख्या जिसमें अधिकतम K सेट बिट्स हों


इस ट्यूटोरियल में, हम एक ऐसा प्रोग्राम लिखेंगे जो दी गई संख्या 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

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें कमेंट सेक्शन में लिखें।


  1. - C++ में Y से कम संख्याओं वाले न्यूनतम सेटों की संख्या

    समस्या कथन लगातार अंकों की एक स्ट्रिंग और एक संख्या Y दी गई है। न्यूनतम सेटों की संख्या ढूंढनी है ताकि प्रत्येक सेट निम्न नियमों का पालन करे: सेट में लगातार संख्याएं होनी चाहिए कोई अंक एक से अधिक बार उपयोग नहीं किया जा सकता सेट में संख्या Y से अधिक नहीं होनी चाहिए उदाहरण यदि str = 123

  1. - C++ में जांचें कि संख्या के बिट्स वैकल्पिक पैटर्न में हैं या नहीं - सेट 1

    आइए मान लें हमारे पास एक पूर्णांक n है। समस्या यह जांचना है कि क्या इस पूर्णांक के बाइनरी समकक्ष में वैकल्पिक पैटर्न हैं या नहीं। वैकल्पिक पैटर्न का अर्थ है 101010...।दृष्टिकोण ऐसा है: बाइनरी समकक्ष का उपयोग करके प्रत्येक अंक की जांच करें, और यदि दो लगातार समान हैं, तो फाल्स लौटाएं, अन्यथा सत्य।उदाह

  1. - C++ में सेट बिट्स की संख्या के अनुसार ऐरे सॉर्ट करें

    यहां हम सेट-बिट्स के आधार पर ऐरे को सॉर्ट करने की एक दिलचस्प समस्या देखेंगे। जब ऐरे में किसी एलिमेंट में अधिक सेट-बिट्स होते हैं, तो उसे उस एलिमेंट से पहले रखा जाएगा जिसमें कम सेट बिट्स होते हैं। मान लीजिए कुछ नंबर्स हैं 12, 15, 7। तो सेट बिट्स मूल रूप से उनके बाइनरी प्रतिनिधित्व में 1s की संख्या है