একটি সংখ্যা N দেওয়া আছে। লক্ষ্য হল ০ থেকে N পর্যন্ত যেসব সংখ্যার সাথে N-এর OR অপারেশন এবং XOR অপারেশন একই ফলাফল দেয়, তাদের সংখ্যা বের করা।
i=0 থেকে N পর্যন্ত লুপ চালিয়ে প্রতিটি i-এর জন্য (N | i) == (i ^ N) কিনা চেক করা হয়। সঠিক হলে কাউন্ট বাড়ানো হয়।
ইনপুট: X=6
আউটপুট: OR == XOR হয় এমন সংখ্যা: ২
ব্যাখ্যা: সংখ্যাগুলো হল ০ এবং ১
ইনপুট: X=20
আউটপুট: সংখ্যা: ৮
ব্যাখ্যা: ০, ১, ২, ৩, ৮, ৯, ১০, ১১
- পূর্ণসংখ্যা N নেওয়া হয়।
orisXOR(int n)ফাংশন n নিয়ে শর্ত পূরণকারী সংখ্যার কাউন্ট রিটার্ন করে।- i=0 থেকে n পর্যন্ত লুপে
(n|i) == (i^n)চেক করে count বাড়ানো হয়। - শেষে count রিটার্ন করা হয়।
#include#include 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 << "N-এর সাথে OR এবং XOR সমান হলে সংখ্যা: " << nums; return 0; }
উপরোক্ত কোড রান করলে আউটপুট (N=15 এর জন্য):
N-এর সাথে OR এবং XOR সমান হলে সংখ্যা: ১