हमें एक पूर्णांक संख्या दी गई है, मान लीजिए, संख्या और कार्य संख्या से कम छोटी संख्याओं की गणना करना है जिनके XOR के साथ संख्या का परिणाम XOR मान से अधिक होगा।
XOR संचालन के लिए सत्य तालिका नीचे दी गई है
A | B | A XOR B |
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
इनपुट - इंट नंबर =11
आउटपुट − उन छोटी संख्याओं की संख्या जिनके XOR n के साथ अधिक मान उत्पन्न करते हैं − 4
स्पष्टीकरण -
हमें अंक 11 के रूप में दिया गया है जिसका अर्थ है कि हमें संख्या से कम संख्याओं के साथ संख्या का XOR खोजने की आवश्यकता है। तो संख्याएं हैं 1 XOR 11 <11(FALSE), 2 XOR 11 <11(FALSE), 3 XOR 11 <11(FALSE), 4 XOR 11> 11(TRUE), 5 XOR 11> 11(TRUE), 6 XOR 11> 11(TRUE), 7 XOR 11> 11(TRUE), 8 XOR 11<11(FALSE), 9 XOR 11 <11(FALSE), 10 XOR 11 <11(FALSE)।
इनपुट - इंट नंबर =12
आउटपुट − उन छोटी संख्याओं की संख्या जिनके XOR n के साथ अधिक मान उत्पन्न करते हैं − 3
स्पष्टीकरण -
हमें संख्या 12 के रूप में दी गई है जिसका अर्थ है कि हमें संख्या से कम संख्याओं के साथ संख्या का XOR खोजने की आवश्यकता है। तो संख्याएँ 1 XOR 12> 12 (TRUE), 2 XOR 12> 12 (TRUE), 3 XOR 12> 12 (TRUE), 4 XOR 12 <12 (FALSE), 5 XOR 12 <12 (FALSE), 6 हैं। एक्सओआर 12 <12 (गलत), 7 एक्सओआर 12<12 (गलत), 8 एक्सओआर 12<12 (गलत), 9 एक्सओआर 12 <12 (गलत), 10 एक्सओआर 12 <12 (गलत), 11 एक्सओआर 12 <12 ( FALSE).
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
एक पूर्णांक तत्व इनपुट करें और इसे num नामक एक चर में संग्रहीत करें।
-
आगे की प्रक्रिया के लिए num का मान फ़ंक्शन को पास करें
-
परिणाम संग्रहीत करने के लिए एक अस्थायी चर गणना बनाएं।
-
लूप प्रारंभ करें जबकि num> 0
. तक -
लूप के अंदर, IF num &1 ==TRUE चेक करें और फिर काउंट को काउंट + पाउ (2, टेम्प) के रूप में सेट करें
-
तापमान के मान को 1 से बढ़ाएँ
-
और num को num पर सेट करें>> =1
-
गिनती वापस करें
-
परिणाम प्रिंट करें
उदाहरण
#include using namespace std; //Count smaller numbers whose XOR with n produces greater value int XOR_greater(int n){ int temp = 0; int count = 0; while (n > 0){ if ((n&1) == 0){ count += pow(2, temp); } temp++; n >>= 1; } return count; } int main(){ int n = 20; cout<<"Count of smaller numbers whose XOR with n produces greater value are: "<<XOR_greater(n) << endl; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of smaller numbers whose XOR with n produces greater value are: 11