Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Count all pairs of an array which differ in K bits in C++
In this tutorial, we will be discussing a program to find the number of pairs of an array which differ in K bits.
For this we will be provided with an array and an integer K. Our task is to find the number of pairs who differ by K bits in their binary representation.
Example
#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;
}
Output
5
Advertisements
