इस समस्या में हमें एक नंबर दिया जाता है। हमारा काम संख्या के द्विआधारी प्रतिनिधित्व में 0s और 1s की गिनती के XOR को खोजना है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
n = 9
आउटपुट
0
स्पष्टीकरण
binary = 1001 Count of 0s = 2 Count of 1s = 2 2 ^ 2 = 0
इस समस्या को हल करने के लिए, हम पहले इसके बाइनरी समकक्ष की संख्या को परिवर्तित करेंगे और फिर संख्या के प्रत्येक बिट पर पुनरावृति करेंगे, 0s और 1s की गणना करेंगे और फिर 0s की संख्या और 1s की संख्या का XOR ज्ञात करेंगे।
उपरोक्त समाधान को स्पष्ट करने के लिए कार्यक्रम,
उदाहरण
#include<iostream> using namespace std; int countXOR10(int n) { int count0s = 0, count1s = 0; while (n){ (n % 2 == 0) ? count0s++ :count1s++; n /= 2; } return (count0s ^ count1s); } int main() { int n = 21; cout<<"XOR of count of 0s and 1s in binary of "<<n<<" is "<<countXOR10(n); return 0; }
आउटपुट
XOR of count of 0s and 1s in binary of 21 is 1