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

C++で指定された条件を満たすインデックスペアをカウントします


最初のN個の自然数の順列の配列が与えられます。ここでの目標は、以下の条件を満たす要素のインデックスペアを見つけることです-

配列がArr[]の場合、i、jはインデックスであり、i <=x<=j。>

つまり、Arr[i]とA[j]の合計は、これら2つのセグメント間で発生する最大要素に等しくなります。

入力

Arr[]= { 2,4,1,3,6,5 }

出力

Count of index pairs which satisfy the given condition:1

説明 −ペアの合計が与えられます-

2 + 4 =6、6は最大ですが、2から4の間ではありません。

2 + 1 =3、3は2と1の間になく、それらの間の最大値は4です。

2 + 3 =5、5は2と3の間になく、それらの間の最大値は4です。

2 + 6 =8、8は2と6の間になく、それらの間の最大値は4です。

同様に

1 + 5 =6、6は1から5の間にあり、それらの間の最大値は6です。

すべてのうち、条件を満たすのは1つのペアだけです。

入力

Arr[]= { 1,2,5,4,3 }

出力

Count of index pairs which satisfy the given condition:2

説明 −ペアの合計が与えられます-

1 + 5 =6、6は最大ですが、1から5の間ではありません。

1 + 4 =5、5は1から4の間にあり、それらの間の最大値は5です。

2 + 3 =5、5は2と3の間にあり、それらの間の最大値は5です。

1 + 3 =4、4は1と3の間にありますが、それらの間の最大値は5です。

条件を満たす2つのペアすべてが存在します。

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

  • 整数配列Arr[]は、数値とその長さのサイズを格納します。

  • 関数countPairs(int A []、int n)は、配列とそのサイズnを入力として受け取り、上記の条件を満たすペアの数を返します。

  • 変数カウントは、そのようなペアの初期値0を格納するために使用されます。

  • max1をmaxindexの最初の要素とそのインデックスで0として初期化し、これまでに見つかった最大値の値とインデックスを格納します。

  • forループを使用してアレイのトラバースを開始します。

  • A [j]> =max1が指定されている場合、ネストされたforループ内で、max1とそのインデックスをjで更新します。

  • A[i]とA[j]の各ペアについて、合計がmax1に等しく、インデックスmaxindexがiとjの間にある場合、条件が満たされたときにカウントをインクリメントします。

  • 終了後、両方のループがカウントに存在する結果を返します。

// CPP implementation of the approach
#include<bits/stdc++.h>
using namespace std;
// Function to return the count of
// required index pairs
int countPairs(int A[], int n){
   // To store the required count
   int count = 0;
   int i,j,k;
   int max1=A[0];
   int maxindex=0;
   for ( i = 0; i<n-1; i++){
      for(j=i+1;j<n;j++){
         if(A[j]>=max1){
             max1=A[j];
            maxindex=j;
      }
      if(A[i]+A[j]==max1 && maxindex>=i && maxindex<=j)
         count++;
      }
   }
   // Return count of subsegments
   return count;
}
int main(){
   int Arr[] = {3, 4, 6, 1, 5, 2};
   int size =6;
   cout <<endl<<"Count of index pairs which satisfy the given condition:"
   <<countPairs(Arr,size);
   return 0;
}

出力

Count of index pairs which satisfy the given condition:1

  1. C++で指定された条件を満たす可能性のあるすべてのN桁の数値をカウントします

    このチュートリアルでは、与えられた条件を満たす可能なN桁の数字の数を見つけるプログラムについて説明します。 このために、整数が提供されます。私たちの仕事は、N桁の数字のどれが続くかを確認することです 数値+逆(数値)=10N -1 例 #include <bits/stdc++.h> using namespace std; //returning the count of numbers string count_num(int N){    if (N % 2 == 1)       return 0;   &n

  2. C++で指定された条件を満たす番号aとbを見つけます

    整数nがあると考えてください。私たちの仕事は、これら3つの条件が満たされる2つの数字aとbを見つけることです。 a mod b =0 n a / b