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

सी++ में सबसे दाहिने बिट की स्थिति


इस समस्या में, हमें दो नंबर N और M दिए गए हैं। हमारा काम संख्या के द्विआधारी प्रतिनिधित्व में सबसे सही भिन्न बिट का सूचकांक खोजना है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट - एन =12 , एम =9

>आउटपुट -2

>स्पष्टीकरण - (12)2 =1100 और (10)2 =1010.

दायें से दूसरा बिट थोड़ा अलग है।

इस समस्या को हल करने के लिए, हमें संख्याओं के सभी भिन्न-भिन्न बिट्स ज्ञात करने होंगे। सभी अलग-अलग बिट्स को खोजने के लिए हमें M और N का xor मिलेगा। फिर हम M^N का सबसे दाहिना हिस्सा पाएंगे।

यह समझने में थोड़ा जटिल लगता है, आइए इस पद्धति का उपयोग करके एक उदाहरण को हल करें।

N = 12 , M = 9
N^M = 0110.

यहां सबसे दाहिना सेट बिट इंडेक्स 2 पर है।

उदाहरण

हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम,

#include <iostream>
#include <math.h>
using namespace std;
int rightSetBit(int N) {
   int bitIndex = log2(N & -N)+1;
   return bitIndex;
}
void rightDiffBit(int m, int n) {
   int diffBit = rightSetBit(m^n);
   cout<<diffBit;
}
int main() {
   int N = 12, M = 10;
   cout<<"Postion of first right different bit of the number "<<N<<" & "<<M<<" is ";
   rightDiffBit(N, M);
   return 0;
}

आउटपुट

Postion of first right different bit of the number 12 & 10 is 2

  1. C++ में T सेकंड के बाद मेंढक की स्थिति

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष वृक्ष है जिसमें n शीर्ष हैं। शीर्षों की संख्या 1 से n तक है। अब एक मेंढक शीर्ष 1 से कूदना शुरू करता है। मेंढक एक सेकंड में अपने वर्तमान शीर्ष से दूसरे गैर-विजिट किए गए शीर्ष पर कूद सकता है यदि वे आसन्न हैं। मेंढक वापस देखे गए शीर्ष पर नहीं जा सकता। यदि मेंढक कई श

  1. C++ . में एक वृत्त पर पूर्णतः विपरीत व्यक्ति की स्थिति

    इस समस्या में, हमें दो पूर्णांक N और M दिए गए हैं। एक वृत्त है और उस पर N लोग खड़े हैं। एम व्यक्ति की स्थिति को दर्शाता है। हमारा काम एम के विपरीत व्यक्ति की स्थिति को प्रिंट करना है। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट - एन =6, एम =3 आउटपुट -6 स्पष्टीकरण - इस समस्या को हल करने के

  1. विभिन्न सी ++ संस्करण

    C++ प्रोग्रामिंग भाषा के बहुत सारे संस्करण हैं। भाषा के ये संस्करण आईएसओ सी ++ समुदाय द्वारा निर्मित विनिर्देशों के आधार पर कंपाइलर्स के कार्यान्वयन हैं, वह समुदाय जो भाषा के विकास की देखरेख करता है। भाषा के निम्नलिखित संस्करण हैं - C++98 (ISO/IEC 14882:1998) पहला संस्करण है। C++03 (ISO/IEC 14882:2