এই টিউটোরিয়ালে আমরা অ্যারেতে K বিটে আলাদা হয় এমন জোড়ার (pair) সংখ্যা বের করার প্রোগ্রাম নিয়ে আলোচনা করব।
এই জন্য আমাদের একটি অ্যারে এবং একটি ইন্টিজার K দেওয়া থাকবে। আমাদের কাজ হলো যেসব জোড়ার বাইনারি রিপ্রেজেন্টেশন K বিটে আলাদা, সেগুলোর সংখ্যা বের করা।
উদাহরণ
#include <bits/stdc++.h> using namespace std; //counting number of bits in //binary representation int count_bit(int n){ int count = 0; while (n) { if (n & 1) ++count; n >>= 1; } return count; } //counting the number of pairs long long count_pair(int arr[], int n, int k) { long long ans = 0; for (int i = 0; i < n-1; ++i) { for (int j = i + 1; j < n; ++j) { int xoredNum = arr[i] ^ arr[j]; if (k == count_bit(xoredNum)) ++ans; } } return ans; } int main() { int k = 2; int arr[] = {2, 4, 1, 3, 1}; int n = sizeof(arr)/sizeof(arr[0]); cout << "Total pairs for k = " << k << " are " << count_pair(arr, n, k) << "\n"; return 0; }আউটপুট
5