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

जांचें कि क्या किसी संख्या में वैकल्पिक पैटर्न में बिट्स हैं - सेट -2 ओ (1) सी ++ में दृष्टिकोण

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

दृष्टिकोण इस प्रकार है:num =n XOR (n>> 1) की गणना करें, अब यदि num के सभी बिट्स 1 हैं, तो num में वैकल्पिक पैटर्न हैं।

उदाहरण

#include <iostream>
#include <algorithm>
using namespace std;
bool isAllBitSet(int n){
   if (((n + 1) & n) == 0)
      return true;
   return false;
}
bool hasAlternatePattern(unsigned int n) {
   unsigned int num = n ^ (n >> 1);
   return isAllBitSet(num);
}
int main() {
   unsigned int number = 42;
   if(hasAlternatePattern(number))
      cout << "Has alternating pattern";
   else
      cout << "Has no alternating pattern";
}

आउटपुट

Has alternating pattern

  1. जाँच करें कि C++ में कोई बड़ी संख्या 3 से विभाज्य है या नहीं

    यहां हम देखेंगे कि किसी संख्या को 3 से विभाज्य कैसे किया जाता है या नहीं। इस मामले में संख्या बहुत बड़ी है। इसलिए हम संख्या को स्ट्रिंग के रूप में रखते हैं। एक संख्या 3 से विभाज्य होगी, यदि अंकों का योग 3 से विभाज्य है। उदाहरण #include <bits/stdc++.h> using namespace std; bool isDiv3(string n

  1. सी ++ प्रोग्राम यह जांचने के लिए कि कोई नंबर पालिंड्रोम है या नहीं

    एक पैलिंड्रोम संख्या वही रहती है यदि उसके अंकों को उलट दिया जाता है अर्थात इसका मान नहीं बदलता है। एक पैलिंड्रोम संख्या को सममित भी कहा जा सकता है। उदाहरण के लिए:संख्या 12321, 1551, 11 आदि पैलिंड्रोम हैं क्योंकि वे अंक उलटने पर भी नहीं बदलते हैं। एक प्रोग्राम जो यह जांचता है कि कोई नंबर पैलिंड्रोम

  1. C++ प्रोग्राम यह जांचने के लिए कि संख्या सम है या विषम

    एक संख्या तब भी होती है जब वह दो से विभाज्य हो और विषम हो यदि वह दो से विभाज्य न हो। कुछ सम संख्याएँ हैं - 2, 4, 6, 8, 10, 12, 14, 16 कुछ विषम संख्याएँ हैं - 1, 3, 5, 7, 9, 11, 13, 15, 17 मापांक का उपयोग करके जांचें कि संख्या सम है या विषम है मापांक का उपयोग करके संख्या सम या विषम है या नहीं यह ज