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

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

आइए मान लें कि हमारे पास एक पूर्णांक n है। समस्या यह जांचना है कि क्या इस पूर्णांक के बाइनरी समकक्ष में वैकल्पिक पैटर्न हैं या नहीं। वैकल्पिक पैटर्न का अर्थ है 101010….

दृष्टिकोण इस प्रकार है:बाइनरी समकक्ष का उपयोग करके प्रत्येक अंक की जांच करें, और यदि लगातार दो समान हैं, तो झूठी वापसी करें, अन्यथा सत्य।

उदाहरण

#include <iostream>
using namespace std;
bool hasAlternatePattern(unsigned int n) {
   int previous = n % 2;
   n = n/2;
   while (n > 0) {
      int current = n % 2;
      if (current == previous) // If current bit is same as previous
      return false;
      previous = current;
      n = n / 2;
   }
   return true;
}
int main() {
   unsigned int number = 42;
   if(hasAlternatePattern(number))
      cout << "Has alternating pattern";
   else
      cout << "Has no alternating pattern";
}

आउटपुट

Has alternating pattern

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

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

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

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

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

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