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

C++ में जांचें कि क्या किसी संख्या में सेट और अनसेट बिट्स की समान संख्या है


इस खंड में हम जांचेंगे कि क्या किसी संख्या में सेट बिट्स और अनसेट बिट्स की समान संख्या है या नहीं। मान लीजिए संख्या 12 है। इसका बाइनरी प्रतिनिधित्व 1100 है। इसमें 0 और 1 की समान संख्या है।

दृष्टिकोण सरल है। हम संख्या के प्रत्येक बिट की जांच करेंगे, और यदि वह 1 है, तो set_bit_count बढ़ाएं, और यदि यह 0 है, तो unset_bit_count बढ़ाएं। अंत में, यदि वे समान हैं, तो true लौटाएं, अन्यथा false।

उदाहरण

#include <iostream>
using namespace std;

bool hasSameSetUnset(int n) {
    int set_count = 0, unset_count = 0;
    while(n) {
        if((n & 1) == 1) {
            set_count++;
        } else {
            unset_count++;
        }
        n = n >> 1; // दाएं शिफ्ट
    }
    if(set_count == unset_count)
        return true;
    return false;
}

int main() {
    int num = 35; // 100011
    if(hasSameSetUnset(num)) {
        cout << "Has same set, unset bits";
    } else {
        cout << "Not same number of set, unset bits";
    }
}

आउटपुट

Has same set, unset bits

  1. - C++ में जांचें कि क्या बड़ी संख्या 2, 3 और 5 से विभाज्य है या नहीं

    यहां हम देखेंगे कि कैसे जांचें कि कोई संख्या 2, 3 और 5 से विभाज्य है या नहीं। इस मामले में संख्या बहुत बड़ी है। इसलिए हम संख्या को स्ट्रिंग के रूप में रखते हैं। एक संख्या 2, 3 और 5 से विभाज्य होगी यदि वह संख्या 2, 3 और 5 के LCM से विभाज्य है। तो 2, 3, 5 का LCM 30 है। हमें जांचना होगा कि संख्या 30 स

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

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

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

    मान लीजिए हमारे पास एक संख्या n है। हमें जांचना है कि संख्या में केवल पहले और अंतिम स्थान पर दो सेट बिट्स हैं या नहीं।तो, यदि इनपुट n = 17 जैसा है, तो आउटपुट True होगा क्योंकि n का बाइनरी प्रतिनिधित्व 10001 है, पहले और अंतिम स्थान पर केवल दो 1 हैं।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:यदि n