हमें एक संख्या N दी गई है। लक्ष्य 0 और N के बीच उन संख्याओं को ढूंढना है जिनका N के साथ अंतर, N के साथ XOR के बराबर है।
हम इसे i=0 से i<=N तक संख्याओं को पार करके करेंगे और प्रत्येक i के लिए, यदि (N-i == i^N) तो काउंट बढ़ाएंगे।
उदाहरण से समझते हैं
इनपुट - X=6
आउटपुट - उन संख्याओं की संख्या जिनका N के साथ अंतर == N के साथ XOR: 4
व्याख्या - संख्याएं हैं 0, 2, 4, 6।
इनपुट - X=20
आउटपुट - उन संख्याओं की संख्या जिनका N के साथ अंतर == N के साथ XOR: 4
व्याख्या - संख्याएं हैं 0, 4, 16, 20
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम पूर्णांक N लेते हैं।
फ़ंक्शन diffisXOR(int n) n लेता है और उन संख्याओं की संख्या लौटाता है जिनका n के साथ अंतर, n के साथ XOR के बराबर है।
प्रारंभिक काउंट को 0 से आरंभ करें।
i=0 से i<=n तक पार करें।
यदि i-n == i^n। काउंट बढ़ाएं।
फॉर लूप के अंत में काउंट में वांछित परिणाम होगा।
काउंट लौटाएं और प्रिंट करें।
उदाहरण
#include <bits/stdc++.h> #include <math.h> using namespace std; int diffisXOR(int n){ int count = 0; for (int i = 0; i <= n; i++){ if((n-i)==(i^n)) { count++; } } return count; } int main(){ int N = 15; int nums=diffisXOR(N); cout <<endl<<"उन संख्याओं की संख्या जिनका N के साथ अंतर == N के साथ XOR: "<<nums; return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
उन संख्याओं की संख्या जिनका N के साथ अंतर == N के साथ XOR: 16