हमें एक पूर्णांक संख्या दी गई है, मान लीजिए x और कार्य उन छोटी संख्याओं की गणना करना है जो x से कम हैं और जिनका x के साथ XOR, x से बड़ा मान देता है।
XOR ऑपरेशन के लिए सत्य सारणी
| A | B | A XOR B |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 0 |
इनपुट - int x = 11
आउटपुट - x से छोटे मान जिनका XOR x से बड़ा है, उनकी संख्या - 4
व्याख्या -
हमें x = 11 दिया गया है जिसका अर्थ है हमें x से कम संख्याओं के साथ XOR ज्ञात करना है। तो संख्याएं हैं: 1 XOR 11 < 11 (गलत), 2 XOR 11 < 11 (गलत), 3 XOR 11 < 11 (गलत), 4 XOR 11 > 11 (सही), 5 XOR 11 > 11 (सही), 6 XOR 11 > 11 (सही), 7 XOR 11 > 11 (सही), 8 XOR 11 < 11 (गलत), 9 XOR 11 < 11 (गलत), 10 XOR 11 < 11 (गलत)।
उपयोग किया गया दृष्टिकोण
- एक पूर्णांक तत्व इनपुट करें और इसे
xनामक चर में संग्रहीत करें। - आगे की प्रक्रिया के लिए num के मान को फ़ंक्शन में पास करें
- परिणाम संग्रहीत करने के लिए एक अस्थायी चर
countऔरnumनामक एक चर बनाएं और इसे 1 पर सेट करें। - WHILE लूप शुरू करें जब तक
x != 0 - लूप के अंदर, जांचें IF
x%2 == 0तोcount = count + numसेट करें num = num * 2औरx = x / 2सेट करें- count लौटाएं
- परिणाम प्रिंट करें
C++ कार्यान्वयन
#include <bits/stdc++.h>
using namespace std;
int XOR_smaller(int x) {
int count = 0;
int num = 1;
while (x != 0) {
if (x % 2 == 0) {
count = count + num;
}
num = num * 2;
x = x / 2;
}
return count;
}
int main() {
int x = 20;
cout << "Count of smaller values whose XOR with x is greater than x are: " << XOR_smaller(x);
return 0;
}
आउटपुट
Count of smaller values whose XOR with x is greater than x are: 11