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

C++で奇数XORとのペアをカウントします


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

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のペアの数は− 6

説明

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を確認してから、even_XORを1つインクリメントします。ELSEはodd_XOR++をインクリメントします;

  • 次に、カウントをodd_XOR *even_XOR

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

  • 結果を印刷する

#include <iostream>
using namespace std;
//Count pairs with Odd XOR
int Odd_XOR(int arr[], int size){
   int count = 0;
   int odd_XOR = 0;
   int even_XOR = 0;
   for (int i = 0; i < size; i++){
      if (arr[i] % 2 == 0){
         even_XOR++;
      }
      else{
         odd_XOR++;
      }
   }
   count = odd_XOR * even_XOR;
   return count;
}
int main(){
   int arr[] = { 2, 6, 1, 4 };
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count of pairs with Odd XOR are: "<<Odd_XOR(arr, size);
   return 0;
}

出力

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

Count of pairs with Odd XOR are: 3

  1. 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 <

  2. C++では「d」桁の正の整数を0で数えます。

    このチュートリアルでは、数字が0の「d」桁の数字を見つけるプログラムについて説明します。 このために、番号「d」が提供されます。私たちのタスクは、「d」桁とその桁の1つとして0を持つ正の整数の数を数えて出力することです。 例 #include<bits/stdc++.h> using namespace std; //counting the number of 'd' digit numbers int count_num(int d) {    return 9*(pow(10,d-1) - pow(9,d-1)); } int main(