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

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;
   //managing with duplicate values
   unordered_map<int, int> m;
   for (int i=0; i<n ; i++){
      int curr_xor = x^arr[i];
      if (m.find(curr_xor) != m.end())
         result += m[curr_xor];
      m[arr[i]]++;
   }
   return result;
}
int main(){
   int arr[] = {2, 5, 2};
   int n = sizeof(arr)/sizeof(arr[0]);
   int x = 0;
   cout << "Count of pairs with given XOR = " << count_pair(arr, n, x);
   return 0;
}

出力

Count of pairs with given XOR = 1

  1. C++で指定された合計ですべてのトリプレットを印刷します

    この問題では、一意の整数の配列と合計が与えられます。そして、同じ合計を形成できるトリプレットを見つける必要があります。 問題を解決するために例を見てみましょう- Input : array = {0 , 2 , -1 , 1, -2} Sum = 1 Output : 1 2 -2 0 2 -1 この問題を解決するために、合計を提供するすべてのトリプレットを見つけます。簡単なアプローチは、3つのループを使用して要素の合計を見つけ、適切なトリプレットを返すことです。 例 #include <iostream> using namespace std; void Triplets(

  2. C++で指定された合計ですべてのペアを印刷します

    この問題では、整数の配列と整数の合計が与えられ、合計が合計値に等しい整数のすべてのペアを出力する必要があります。 問題を理解するために例を見てみましょう: 入力- 配列={1、6、-2、3}合計=4 出力- (1、3)、(6、-2) ここでは、指定された合計値のペアが必要です。 問​​題の簡単な解決策は、合計を生成する要素のペアをチェックすることです。これは、配列をトラバースして、合計値となる配列内の数値を見つけることで実行できます。 例 このプログラムは解決策を説明します- #include <iostream> using namespace std; int prin