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

C++で指定された合計のペアをカウントします


整数配列が与えられ、タスクは、ペアの合計が指定された合計と等しくなるように、指定された配列値を使用して形成できるペアの総数をカウントすることです。 。

入力 − int arr [] ={2、8、1、5、11}、合計=10

出力 −与えられた合計13のペアの数は− 2

説明

a1 a2 a1 + a2
2 8 10
2 1 3
2 5 7
2 11 13
8 1 9
8 5 13
8 11 19
1 5 6
1 11 12
5 11 16

入力 − int arr [] ={2、8、-1、5、-11}、合計=6

出力 −与えられた合計6のペアの数は− 1

説明

a1 a2 a1 + a2
2 8 10
2 -1 1
2 5 7
2 -11 -9
8 -1 7
8 5 13
8 -11 -3
1 5 6
1 -11 -10
5 -11 -6
以下のプログラムで使用されているアプローチは次のとおりです
  • 整数要素の配列を入力して、ペアと合計の整数値を形成します。

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

  • ペアを指定された合計と一致させるために一時変数カウントを作成します

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

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

  • ループ内で、一時変数totalをarr [i] + arr [j]

    として設定します。
  • IF total ==sumを確認してから、カウントを1ずつインクリメントします

  • カウントを返す

  • 結果を印刷する

#include <bits/stdc++.h>
using namespace std;
//Count pairs with given sum
int Pair_Sum(int arr[], int size, int sum){
   int count = 0;
   for (int i=0; i<size; i++){
      for (int j=i+1; j<size; j++){
         int total = arr[i] + arr[j];
         if (total == sum){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {2, 6, 1, 7, 9, 8} ;
   int sum = 9;
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Count of pairs with given sum "<<sum<<" is: "<<Pair_Sum(arr, size, sum);
   return 0;
}

出力

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

Count of pairs with given sum 9 is: 2

  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