আমাদের দুটি সংখ্যা S এবং K দেওয়া হয়েছে। লক্ষ্য হল ধনাত্মক সংখ্যার ক্রমযুক্ত জোড়া খুঁজে বের করা যাতে তাদের যোগফল S এবং XOR হল K।
আমরা এটি করব i=1 থেকে i
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট
S=10 K=4
আউটপুট
Ordered pairs such that sum is S and XOR is K: 2
ব্যাখ্যা
Pairs will be (3,7) and (7,3)
ইনপুট
S=12 K=6
আউটপুট
Ordered pairs such that sum is S and XOR is K: 0
ব্যাখ্যা
No such pairs possible.
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা S এবং K পূর্ণসংখ্যা নিই।
-
ফাংশন sumXOR(int s, int k) s এবং k নেয় এবং যোগফল=s এবং xor=k
সহ অর্ডার করা জোড়ার গণনা প্রদান করে। -
জোড়ার জন্য প্রাথমিক পরিবর্তনশীল গণনা 0 হিসাবে নিন।
-
জোড়া তৈরির জন্য লুপের জন্য দুটি ব্যবহার করে ট্র্যাভার্স।
-
i=1 থেকে i
-
এখন প্রতিটি জোড়ার জন্য (i,j) পরীক্ষা করুন যদি (i+j==s) &&(i^j==k)। যদি সত্যিকারের বৃদ্ধি 2 দ্বারা গণনা করা হয় (i,j) এবং (j,i) উভয়ই ভিন্ন জোড়া।
-
সমস্ত লুপ গণনার শেষে এই ধরনের জোড়ার মোট সংখ্যা থাকবে।
-
ফলাফল হিসাবে গণনা ফেরত দিন।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int sumXOR(int s, int k){ int count = 0; for (int i = 1; i < s; i++){ for(int j=i+1; j<s-1; j++){ if( (i+j)==s && (i^j)==k){ count+=2; //(i,j) and (j,i) are two pairs } } } return count; } int main(){ int S = 9, K = 5; cout <<"Ordered pairs such that sum is S and XOR is K: "<< sumXOR(S,K); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেOrdered pairs such that sum is S and XOR is K: 4