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

C++ में अल्टरनेटिंग बिट्स के साथ बाइनरी नंबर

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

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

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • p :=n और 1
  • यदि n <2, तो −
    • सही लौटें
  • n :=n/2
  • जबकि n गैर-शून्य है, करें −
    • c :=n और 1
    • यदि c XOR p, 0 के समान है, तो −
      • झूठी वापसी
    • p :=c
    • n :=n/2
  • सही लौटें

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

उदाहरण

#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;
   }
};
main(){
   Solution ob;
   cout << (ob.hasAlternatingBits(10));
}

इनपुट

10

आउटपुट

1

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

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

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

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

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

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