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

C++で合計が偶数の2つの配列からペアをカウントします


整数型要素の2つの配列、たとえばarr_1[]とarr_2[]が与えられます。タスクは、arr_1 []から1つの要素を選択し、arr_ []から別の要素を選択してペアを形成し、ペアにして、結果の合計が偶数かどうかを確認します。

入力

int arr_1[] = {2, 3, 7, 1, 4}
int arr_2[] = { 2, 4, 1, 3}

出力

Count Pairs from two arrays with even sum are: 10

説明

We will form the pairs using both the arrays and the pairs so formed are-:
(2, 2) = 4(valid), (2, 4) = 6(valid), (2, 1) = 3(invalid), (2, 3) = 5(invalid), (3, 2) = 5(invalid), (3, 4) = 7(invalid), (3, 1) = 4(valid), (3, 3) = 5(valid), (7, 2) = 9(invalid), (7, 4) = 11(invalid), (7, 1) = 8(valid), (7, 3) = 10(valid), (1, 2) = 3(invalid), (1, 4) = 5(invalid), (1, 1) = 2(valid), (1, 3) = 4(valid), (4, 2) = 6(valid), (4, 4) = 8(valid), (4, 1) = 5(invalid), (4, 3) = 7(invalid). There are 10 valid pairs formed using given two arrays that are even sums.

入力

int arr_1[] = {3, 1, 2}
int arr_2[] = { 2, 4}

出力

Count Pairs from two arrays with even sum are: 2

説明

We will form the pairs using both the arrays and the pairs so formed are-:
(3, 2) = 5(invalid), (3, 4) = 7(invalid), (1, 2) = 3(invalid), (1, 4) = 5(invalid), (2, 2) = 4(valid), (2, 4) = 6(valid), . There are 2 valid pairs formed using given two arrays that are even sums.

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

  • 整数型要素の2つの配列を入力し、両方の配列のサイズを計算して、さらに処理するためにデータを関数に渡します。

  • 一時変数をカウントとして取り、合計が偶数のペアのカウントを格納します

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

  • ループ内で、配列2のサイズになるまでjから0までの別のループFORを開始します

  • ここで、arr_1[i]とarr_2[j]の合計を整数変数に格納します。たとえば、sum

  • IF合計%2 ==0を確認します。つまり、合計が偶数かどうかを確認します。はいの場合は、カウントを1ずつ増やします。

  • カウントを返す

  • 結果を印刷します。

#include <iostream>
using namespace std;
int even_pair(int arr_1[], int size_arr1, int arr_2[], int size_arr2){
   int count = 0;
   int odd = 0;
   for(int i = 0 ;i <size_arr1 ; i++){
      for(int j = 0; j<size_arr2 ; j++){
         int even = arr_1[i] + arr_2[j];
         if(even % 2 == 0){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr_1[] = {2, 3, 7, 1, 4};
   int arr_2[] = { 2, 4, 1, 3};
   int size_arr1 = sizeof(arr_1) / sizeof(arr_1[0]);
   int size_arr2 = sizeof(arr_2) / sizeof(arr_2[0]);
   cout<<"Count Pairs from two arrays with even sum are: "<<even_pair(arr_1, size_arr1, arr_2, size_arr2);
   return 0;
}

出力

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

Count Pairs from two arrays with even sum are: 10

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

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

  2. C++の2つのアレイからの一意のペアの最大化

    問題の説明 サイズNが等しい2つの配列が与えられた場合、それらの要素を使用して最大数のペアを形成します。1つは最初の配列から、2つ目は2番目の配列から、各配列の要素が最大1回使用され、選択されたものの絶対差が使用されます。ペアを形成するために使用される要素は、特定の要素K以下です。 例 入力が-の場合 arr1 [] ={3、4、5、2、1} arr2 [] ={6、5、4、7、15} k =3の場合、絶対差が3 −以下の次の4つのペアを形成できます。 (1、4)、(2、5)、(3、6)、(4、7) アルゴリズム この問題を解決するために再帰的アプローチを使用できます 両方