Count pairs with Bitwise XOR as EVEN number in C++

C++Server Side ProgrammingProgramming

We are given an integer array and the task is to count the total number of pairs that can be formed using the given array values such that the XOR operation on the pairs will result in an EVEN value.

The truth table for XOR operation is given below

ABA XOR B
000
101
011
110

Input − int arr[] = {2, 8, 1, 5, 11}

Output − Count of pairs with Bitwise XOR as EVEN number are − 4

Explanation

a1a2a1 XOR a2
2810
213
257
2119
819
8513
8113
154
11110
51114

Approach used in the below program is as follows

  • Input an array of integer elements to form an pair

  • Calculate the size of an array pass the data to the function for further processing

  • Create a temporary variable count to store the pairs formed with XOR operation as an even value.

  • Start loop FOR from i to 0 till the size of an array

  • Inside the loop, check IF arr[i] % 2 == FALSE then increment the count by 1

  • Set the temp as size * (size - 1)

  • Set another temporary variable as pairs = temp / 2

  • Now calculate the odd value pairs in an array as count * (size - count)

  • Now calculate the even pairs as total pairs - odd pairs

  • Return the even

  • Print the result.

Example

 Live Demo

#include <iostream>
using namespace std;
//Count pairs with Bitwise XOR as EVEN number
int XOR_Even(int arr[], int size){
   int count = 0;
   for (int i = 0; i < size; i++){
      if (arr[i] % 2 != 0){
         count++;
      }
   }
   int temp = size * (size-1);
   int Pairs = temp / 2;
   int odd = count * (size - count);
   int even = Pairs - odd;
   return even;
}
int main(){
   int arr[] = { 2, 6, 1, 8};
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count of pairs with Bitwise XOR as EVEN number are: "<<XOR_Even(arr, size);
   return 0;
}

Output

If we run the above code it will generate the following output −

Count of pairs with Bitwise XOR as EVEN number are: 3
raja
Published on 31-Aug-2020 09:36:49
Advertisements