हमें दो नंबर S और K दिए गए हैं। लक्ष्य सकारात्मक संख्याओं के क्रमित जोड़े को इस तरह से खोजना है कि उनका योग S और XOR K हो।
हम इसे i=1 से i
आइए उदाहरणों से समझते हैं।
इनपुट
S=10 K=4
आउटपुट
Ordered pairs such that sum is S and XOR is K: 2
स्पष्टीकरण
Pairs will be (3,7) and (7,3)
इनपुट
S=12 K=6
आउटपुट
Ordered pairs such that sum is S and XOR is K: 0
स्पष्टीकरण
No such pairs possible.
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम पूर्णांक S और K लेते हैं।
-
फ़ंक्शन sumXOR(int s, int k) s और k लेता है और सम=s और xor=k
के साथ क्रमित युग्मों की संख्या लौटाता है -
जोड़े के लिए प्रारंभिक चर गणना को 0 के रूप में लें।
-
जोड़े बनाने के लिए दो फॉर लूप का उपयोग करके ट्रैवर्स करें।
-
i=1 से i
-
अब प्रत्येक जोड़ी के लिए (i,j) जांचें कि क्या (i+j==s) &&(i^j==k) है। यदि वास्तविक वृद्धि की गणना 2 से (i,j) और (j,i) के रूप में की जाती है, तो दोनों अलग-अलग जोड़े हैं।
-
सभी लूपों के अंत में गिनती में ऐसे जोड़ों की कुल संख्या होगी।
-
परिणाम के रूप में गिनती लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int sumXOR(int s, int k){ int count = 0; for (int i = 1; i < s; i++){ for(int j=i+1; j<s-1; j++){ if( (i+j)==s && (i^j)==k){ count+=2; //(i,j) and (j,i) are two pairs } } } return count; } int main(){ int S = 9, K = 5; cout <<"Ordered pairs such that sum is S and XOR is K: "<< sumXOR(S,K); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Ordered pairs such that sum is S and XOR is K: 4