আমরা একটি সংখ্যা N। লক্ষ্য হল 0 এবং N এর মধ্যে এমন সংখ্যা খুঁজে বের করা যার বা N এর সাথে N এর XOR এর সমান।
আমরা নং অতিক্রম করে এটি করব। i=0 থেকে i<=N এবং প্রতিটি i এর জন্য, যদি (N^i==i | N) তাহলে সংখ্যা বৃদ্ধি করুন।
আসুন উদাহরণ দিয়ে বুঝতে পারি।
ইনপুট − X=6
আউটপুট − সংখ্যার সংখ্যা যার OR এর সাথে N ==XOR এর সাথে N:2
ব্যাখ্যা − সংখ্যাগুলি হল 0 1৷
৷ইনপুট − X=20
আউটপুট − সংখ্যার সংখ্যা যার OR এর সাথে N ==XOR এর সাথে N:8
ব্যাখ্যা − সংখ্যা হল 0 1 2 3 8 9 10 11
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা পূর্ণসংখ্যা N.
নিই -
ফাংশন orisXOR(int n) n নেয় এবং এমন একটি সংখ্যা প্রদান করে যার OR এর সাথে n XOR এর n এর সাথে সমান।
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
i=0 থেকে i<=n.
এ যাত্রা করুন -
যদি i|n==i^n. বৃদ্ধির সংখ্যা
-
লুপ গণনার শেষে কাঙ্ক্ষিত ফলাফল পাওয়া যাবে।
-
রিটার্ন গণনা এবং মুদ্রণ।
উদাহরণ
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int orisXOR(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=orisXOR(N);
cout <<endl<<"Count of numbers whose OR with N == XOR with N: "<<nums;
return 0;
} আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of numbers whose OR with N == XOR with N: 1