C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++の偶数としてビット単位XORを使用してペアをカウントします


整数配列が与えられ、タスクは、与えられた配列値を使用して形成できるペアの総数をカウントし、ペアに対するXOR演算がEVENになるようにすることです。値。

XOR演算の真理値表を以下に示します

A B A XOR B
0 0 0
1 0 1
0 1 1
1 1 0

入力 − int arr [] ={2、8、1、5、11}

出力 −偶数としてビット単位XORを持つペアの数は− 4

説明

a1 a2 a1 XOR a2
2 8 10
2 1 3
2 5 7
2 11 9
8 1 9
8 5 13
8 11 3
1 5 4
1 11 10
5 11 14
以下のプログラムで使用されているアプローチは次のとおりです
  • 整数要素の配列を入力してペアを形成します

  • 配列のサイズを計算し、さらに処理するためにデータを関数に渡します

  • XOR演算で形成されたペアを偶数値として格納するための一時変数カウントを作成します。

  • 配列のサイズまでiから0までのループFORを開始します

  • ループ内で、IF arr [i]%2 ==FALSEを確認してから、カウントを1ずつ増やします

  • 温度をサイズ*(サイズ-1)として設定します

  • 別の一時変数をpairs=temp / 2

    として設定します
  • 次に、配列内の奇数値のペアをcount *(size-count)

    として計算します。
  • 次に、偶数ペアを合計ペアとして計算します-奇数ペア

  • 偶数を返す

  • 結果を印刷します。

#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;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Count of pairs with Bitwise XOR as EVEN number are: 3

  1. C++で指定されたXORを持つすべてのペアをカウントします

    このチュートリアルでは、指定されたXORのペアの数を見つけるプログラムについて説明します。 このために、配列と値が提供されます。私たちのタスクは、XORが指定された値に等しいペアの数を見つけることです。 例 #include<bits/stdc++.h> using namespace std; //returning the number of pairs //having XOR equal to given value int count_pair(int arr[], int n, int x){    int result = 0;   &

  2. C++の配列内の偶数要素と奇数要素の数をカウントします

    このチュートリアルでは、配列内の偶数要素と奇数要素の数を見つけるプログラムについて説明します。 このために、アレイが提供されます。私たちのタスクは、指定された配列の偶数要素と奇数要素の数を計算することです。 例 #include<iostream> using namespace std; void CountingEvenOdd(int arr[], int arr_size){    int even_count = 0;    int odd_count = 0;    //looping through the