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

C++ではビットごとのORを偶数としてペアをカウントします


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

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

A B AVB
0 0 0
1 0 1
0 1 1
1 1 1

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

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

説明

a1 a2 a1Va2
2 5 7
2 1 3
2 8 10
2 9 11
5 1 5
5 8 13
5 9 13
1 8 9
1 9 10
8 9 9

以下のプログラムで使用されているアプローチは次のとおりです

  • 整数要素の配列を入力してペアを形成します

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

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

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

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

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

    として設定します
  • カウントを返す

  • 結果を印刷します。

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

出力

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

Count of pairs with Bitwise OR as Even number are: 3

  1. C++で偶数と奇数の合計を持つ順序対の数をカウントします

    n個の正の数の配列が与えられます。目標は、順序対(arr [x]、arr [y])をarr[x]とarrの合計でカウントすることです。 [y]は偶数または奇数です。ペア(arr [i]、arr [j])と(arr [j]、arr[i]は別々にカウントされます。 ペアの数ごとに2つのforループを使用して配列をトラバースします。次に、合計を計算します。偶数の合計の場合は偶数の増分カウントが2で、奇数の合計の場合は増分カウントが2です。 例を挙げて理解しましょう。 入力 − arr [] ={1,1,2,3} N =4 出力 −偶数の積の合計のカウント− 6奇数の合計のペアのカウント−

  2. C++で偶数および奇数の積を持つ順序対の数をカウントします

    n個の正の数の配列が与えられます。目標は、順序対(arr [x]、arr [y])をarr[x]とarrの積でカウントすることです。 [y]は偶数または奇数です。ペア(arr [i]、arr [j])と(arr [j]、arr[i]は別々にカウントされます。 ペアの数ごとに2つのforループを使用して配列をトラバースします。次に、製品を計算します。偶数の製品の場合は偶数の増分カウントが2で、奇数の製品の場合は増分カウントが2です。 例を挙げて理解しましょう。 入力 − arr [] ={1,1,2,3} N =4 出力 −偶数の製品ペアの数:6奇数の製品ペアの数:6 説明 −有効