हमें दो नंबर S और K दिए गए हैं। लक्ष्य सकारात्मक संख्याओं के क्रमित जोड़े को इस तरह से खोजना है कि उनका योग S और XOR K हो।
हम इसे i=1 से i
आइए उदाहरणों से समझते हैं।
इनपुट
आउटपुट
स्पष्टीकरण
इनपुट
आउटपुट
स्पष्टीकरण
हम पूर्णांक 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) के रूप में की जाती है, तो दोनों अलग-अलग जोड़े हैं।
सभी लूपों के अंत में गिनती में ऐसे जोड़ों की कुल संख्या होगी।
परिणाम के रूप में गिनती लौटाएं।
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -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.
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
उदाहरण
#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