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

जांचें कि किसी संख्या में सी ++ में दो आसन्न सेट बिट्स हैं या नहीं

यहां हम देखेंगे, अगर किसी संख्या के बाइनरी प्रतिनिधित्व में आसन्न सेट बिट्स हैं। मान लीजिए कि संख्या 12 में लगातार दो 1s (12 =1100) हैं।

इस प्रकार की संख्या की जाँच करने के लिए, विचार बहुत सरल है। हम नंबर 1 बिट शिफ्ट करेंगे, फिर बिटवाइज AND करेंगे। यदि बिटवाइज़ और परिणाम गैर-शून्य है, तो कुछ क्रमागत 1s होने चाहिए।

उदाहरण

#include <iostream>
using namespace std;
bool hasConsecutiveOnes(int n) {
   if((n & (n >> 1)) == 1){
   return true;
   }else{
      return false;
   }
}
int main() {
   int num = 67; //1000011
   if(hasConsecutiveOnes(num)){
      cout << "Has Consecutive 1s";
   }else{
      cout << "Has No Consecutive 1s";
   }
}

आउटपुट

Has Consecutive 1s

  1. C++ में k सेट बिट्स के साथ किसी संख्या को अधिकतम करने के लिए आवश्यक न्यूनतम फ़्लिप।

    समस्या कथन दो नंबर n और k को देखते हुए, हमें दी गई संख्या को अधिकतम करने के लिए आवश्यक फ़्लिप की न्यूनतम संख्या को इसके बिट्स को फ़्लिप करके खोजने की आवश्यकता है जैसे कि परिणामी संख्या में k सेट बिट्स हों। कृपया ध्यान दें कि इनपुट को इस शर्त को पूरा करना चाहिए कि k

  1. C++ प्रोग्राम दो मैट्रिसेस की बहुलता की जांच करने के लिए

    दो मैट्रिक्स को गुणा करने योग्य कहा जाता है यदि उन्हें गुणा किया जा सकता है। यह तभी संभव है जब पहले मैट्रिक्स के कॉलम की संख्या दूसरे मैट्रिक्स की पंक्तियों की संख्या के बराबर हो। उदाहरण के लिए। Number of rows in Matrix 1 = 3 Number of columns in Matrix 1 = 2 Number of rows in Matrix 2 = 2 Number o

  1. जांचें कि क्या किसी संख्या के बिट्स में पायथन में बढ़ते क्रम में लगातार सेट बिट्स की गिनती है

    मान लीजिए कि हमारे पास एक सकारात्मक संख्या n है, हमें यह जांचना है कि दी गई संख्या n के बिट पैटर्न में निरंतर 1s की संख्या बाएं से दाएं बढ़ रही है या नहीं। इसलिए, यदि इनपुट n =1775 जैसा है, तो आउटपुट सही होगा, क्योंकि n का बाइनरी प्रतिनिधित्व 11011101111 है, इसलिए निरंतर 1s की संख्या [2, 3, 4] है ज