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

C++ में 1 से n तक K संख्याओं का उपयोग करते हुए अधिकतम XOR


इस समस्या में, हमें दो धनात्मक पूर्णांक n और k दिए गए हैं। हमारा कार्य अधिकतम X संख्याओं का उपयोग करके 1 से n के बीच अधिकतम xor ज्ञात करना है

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

इनपुट - n =5, k =2

आउटपुट - 7

स्पष्टीकरण -

elements till 5 is 1, 2, 3, 4, 5
Selecting all XOR pairs:
1^2 = 3, 1^3 = 2, 1^4 = 5, 1^5 = 4
2^3 = 4, 2^4 = 6, 2^5 = 7
3^4 = 7, 3^5 = 6
4^5 = 1
The maximum here is 7.

इस समस्या को हल करने के लिए, संख्याओं के किसी भी संयोजन के लिए अधिकतम XOR पाया जा सकता है, जब संख्या के सभी बिट सेट हो जाते हैं।

इसलिए, यदि संख्या 5 है तो इसका बाइनरी 101 है, अधिकतम XOR 111 यानि 7. होगा।

लेकिन अगर अधिकतम XOR के लिए लिए जाने वाले तत्वों की संख्या 1 है तो अधिकतम XOR 1 है। नहीं तो सभी बिट्स सेट करके अधिकतम XOR मिल जाएगा।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,

#include <iostream>
using namespace std;
int maxXor(int n, int k) {
   if (k == 1)
      return n;
   int result = 1;
   while (result <= n)
      result <<= 1;
   return result - 1;
}
int main() {
   int n = 5, k = 2;
   cout<<"The maximum XOR of "<<k<<" numbers from 1 to"<<n<<" is "<<maxXor(n, k);
   return 0;
}

आउटपुट

The maximum XOR of 2 numbers from 1 to 5 is 7

  1. C++ में अज्ञात के दिए गए उत्पाद से अधिकतम GCD

    मान लीजिए कि हम दो पूर्णांक N और P हैं। P, N अज्ञात पूर्णांकों का गुणनफल है। हमें उन पूर्णांकों का GCD ज्ञात करना है। पूर्णांकों के विभिन्न समूह संभव हो सकते हैं, जो समान परिणाम देंगे। यहां हम जीसीडी का उत्पादन करेंगे, जो सभी संभावित समूहों में अधिकतम है। मान लीजिए एन =3, और पी =24, तो अलग-अलग समूह

  1. C++ में ++ ऑपरेटर का उपयोग करके दो नंबर जोड़ें।

    प्रोग्रामिंग में, ++ ऑपरेटर इंक्रीमेंट ऑपरेटर है जो ऑपरेंड के मूल्य को 1 से बढ़ाता है। हम इस ऑपरेटर का उपयोग करके संख्या a, b संख्या में 1 जोड़कर दो नंबर जोड़ सकते हैं। उदाहरण, Input: a = 31 , b = 4 Output: 35 स्पष्टीकरण − 1 से 31 को चार बार जोड़ने पर 31 +1+1+1+1 =35 तक का योग बनता है। एल्गोरिदम I

  1. सी ++ में बड़ी संख्या में हैंडलिंग?

    सी ++ में, हम बूस्ट लाइब्रेरी का उपयोग करके बड़ी संख्या में उपयोग कर सकते हैं। यह सी ++ बूस्ट लाइब्रेरी व्यापक रूप से उपयोग की जाने वाली लाइब्रेरी है। इसका उपयोग विभिन्न वर्गों के लिए किया जाता है। इसमें अनुप्रयोगों का बड़ा डोमेन है। उदाहरण के लिए, बूस्ट का उपयोग करके, हम 264 . जैसी बड़ी संख्या का उ