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

C++ में जांचें कि संख्या के बिट्स वैकल्पिक पैटर्न में हैं या नहीं - सेट-2 O(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 num)

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

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

  1. - C++ प्रोग्राम: जांचें कि संख्या सम (Even) है या विषम (Odd)

    परिचयएक संख्या सम होती है यदि यह दो से विभाज्य होती है और विषम होती है यदि यह दो से विभाज्य नहीं होती। कुछ सम संख्याएं हैं - 2, 4, 6, 8, 10, 12, 14, 16 कुछ विषम संख्याएं हैं - 1, 3, 5, 7, 9, 11, 13, 15, 17 मॉड्यूलस का उपयोग करके सम/विषम जांचेंउदाहरण#include <iostream> using namespace std; int