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

Bitwise-ANDを使用してペアをC++の偶数としてカウントします


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

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

A B A ^ B
0 0 0
1 0 0
0 1 0
1 1 1

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

出力 −偶数としてビットごとのANDを持つペアの数は− 7

説明

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

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

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

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

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

  • カウントをカウント*(カウント-1)/ 2

    として設定します
  • 形成されたペアの総数を格納する一時変数を作成し、(サイズ*(サイズ-1)/ 2)

    に設定します。
  • 形成されたペアの合計からカウントを引いたものとして奇数を保存します

  • 奇数値を返す

  • 結果を印刷します。

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

出力

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

Count of pairs with Bitwise-AND as even number are: 7

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

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

  2. C++でkに等しい差を持つすべての異なるペアをカウントします

    このチュートリアルでは、差がkに等しい個別のペアを見つけるプログラムについて説明します。 このために、整数配列と値kが提供されます。私たちのタスクは、差がkであるすべての個別のペアをカウントすることです。 例 #include<iostream> using namespace std; int count_diffK(int arr[], int n, int k) {    int count = 0;    //picking elements one by one    for (int i = 0; i <