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

C++でビット単位のANDを使用してODD番号としてペアをカウントします


整数配列が与えられ、タスクは、与えられた配列値を使用して形成できるペアの総数をカウントし、ペアに対する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}

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

説明

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 ==TRUEを確認してから、カウントを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] % 2 == 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 AND as ODD number are: "<<count_pair(arr, size) << endl;
   return 0;
}

出力

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

Count of pairs with Bitwise AND as ODD number are: 6

  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++でビット単位のAND数値Nのセットを出力します

    この問題では、nの2進数のビットごとのANDである0からnまでのすべての数値を出力する必要があります。 概念をよりよく理解するために例を見てみましょう。 Input : N = 4. Output : 0 4 Explanation :    0 & 4 = 0    1 & 4 = 0    2 & 4 = 0    3 & 4 = 0    4 & 4 = 4. Input : N = 6 Output : 0, 2, 4, 6 この問題を解決する