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

C++ में किसी श्रेणी से युग्म का अधिकतम XOR मान

समस्या कथन

एक श्रेणी [एल, आर] को देखते हुए, हमें इस श्रेणी में दो पूर्णांकों को खोजने की जरूरत है ताकि उनका एक्सओआर दो पूर्णांकों के सभी संभावित विकल्पों में से अधिकतम हो

अगर दी गई रेंज L =1 और R =21 है तो आउटपुट 31 होगा क्योंकि -31 15 और 16 का XOR है और यह रेंज के भीतर अधिकतम है।

एल्गोरिदम

1. Calculate the (L^R) value
2. From most significant bit of this value add all 1s to get the final result

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int getMaxXOR(int L, int R){
   int LXR = L ^ R;
   int msbPos = 0;
   while (LXR) {
      msbPos++;
      LXR >>= 1;
   }
   int maxXOR = 0;
   int two = 1;
   while (msbPos--) {
      maxXOR += two;
      two <<= 1;
   }
   return maxXOR;
}
int main(){
   int L = 1;
   int R = 21;
   cout << "Result = " << getMaxXOR(L, R) << endl;
   return 0;
}

आउटपुट

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है -

Result = 31

  1. C++ में दी गई सीमा से अधिकतम बिटवाइज़ और जोड़ी

    समस्या कथन एक श्रेणी [एल, आर] को देखते हुए, कार्य एक जोड़ी (एक्स, वाई) को ढूंढना है जैसे कि एल ≤ एक्स <वाई ≤ आर और एक्स और वाई सभी संभावित जोड़े में से अधिकतम है, फिर बिटवाइज और मिली जोड़ी को प्रिंट करें । उदाहरण यदि L =1 और R =10 है तो बिटवाइज अधिकतम और मान 8 है जिसे निम्न प्रकार से बनाया जा सकता

  1. सी ++ में एक सरणी में अधिकतम बिटवाइज़ और एक जोड़ी का मूल्य

    समस्या कथन n सकारात्मक तत्वों की एक सरणी को देखते हुए। हमें सरणी से किसी भी तत्व के जोड़े द्वारा उत्पन्न अधिकतम बिटवाइज़ और मान खोजने की आवश्यकता है। उदाहरण यदि इनपुट ऐरे {10, 12, 15, 18} है तो बिटवाइज़ का अधिकतम मान और 12 है। एल्गोरिदम बिटवाइज़ और सिंगल बिट पर संचालन का परिणाम अधिकतम होता है जब

  1. C++ में न्यूनतम XOR मान युग्म

    समस्या कथन पूर्णांकों की एक सरणी को देखते हुए। जोड़ी को एक सरणी में खोजें जिसमें न्यूनतम XOR मान हो उदाहरण If arr[] = {10, 20, 30, 40} then minimum value pair will be 20 and 30 as (20 ^ 30) = 10. (10 ^ 20) = 30 (10 ^ 30) = 20 (10 ^ 40) = 34 (20 ^ 30) = 10 (20 ^ 40) = 60 (30 ^ 40) = 54 एल्गोरिदम दि