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

C++ में वैकल्पिक बिट्स वाली बाइनरी संख्या


मान लीजिए हमारे पास एक सकारात्मक पूर्णांक है, हमें जांचना है कि क्या इसमें वैकल्पिक बिट्स हैं - यानी, दो आसन्न बिट्स के मान हमेशा अलग होंगे।

इसलिए, यदि इनपुट 10 है, तो आउटपुट True होगा, क्योंकि 10 का बाइनरी प्रतिनिधित्व 1010 है।

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  • p := n AND 1
  • यदि n < 2, तो:
    • true वापस करें
  • n := n/2
  • n शून्येतर होने तक लूप चलाएं:
    • c := n AND 1
    • यदि c XOR p == 0, तो:
      • false वापस करें
    • p := c
    • n := n/2
  • true वापस करें

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

उदाहरण

#include <bits/stdc++.h> 
using namespace std; 
class Solution { 
public: 
    bool hasAlternatingBits(int n) { 
        bool p=n&1; 
        bool c; 
        if(n<2) 
            return true; 
        n>>=1; 
        while(n){ 
            c=n&1; 
            if(c^p==0) 
                return false; 
            p=c; 
            n>>=1; 
        } 
        return true; 
    } 
}; 
int main(){ 
    Solution ob; 
    cout << (ob.hasAlternatingBits(10)); 
}

इनपुट

10

आउटपुट

1
  1. - C++ में अगली संख्या का बाइनरी प्रतिनिधित्व

    इस समस्या में, हमें एक संख्या का बाइनरी प्रतिनिधित्व दिया जाता है और हमें अगली संख्या का बाइनरी प्रतिनिधित्व ढूंढना होता है यानी दी गई संख्या में एक जोड़ने के बाद परिणामी संख्या। बाइनरी प्रतिनिधित्व एक संख्या का आधार को आधार 2 में बदलना और संख्या को केवल 0 या 1 का उपयोग करके दर्शाना है। उदाहरण के लि

  1. - C++ में दी गई संख्या का बाइनरी प्रतिनिधित्व

    बाइनरी संख्या बाइनरी संख्या केवल 0 और 1 अंकों से बनी होती है। पुनरावर्ती विधि पुनरावृत्ति का उपयोग करके संख्या को बाइनरी में बदलें: 1, तो संख्या/2 के साथ पुनरावर्ती कॉल करें वापस आते समय संख्या % 2 प्रिंट करें उदाहरण कोड 1) toBinary(number / 2); cout << number % 2; } int ma

  1. - C++ में k सेट बिट्स के साथ नंबर को अधिकतम करने के लिए न्यूनतम फ्लिप्स

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