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

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

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

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

उदाहरण

#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; //shift to right
   }
   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 के एलसीएम से विभाज्य है। तो 2, 3, 5 का एलसीएम 30 है। हमें यह जांचना है क

  1. सी ++ में सेट बिट्स की गिनती के अनुसार एक सरणी को क्रमबद्ध करें

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

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

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