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

C++でA[i]

3つの配列A[]、B []、C[]が与えられます。目標は、A [i]

例を挙げて理解しましょう。

入力

A[]={1,4,5 } B = { 0,2,3 } C = { 0,6,7 }

出力 −トリプレットの数− 4

説明

Triplets such that A[i]<B[j]<C[k]
(1,2,6) , (1,2,7) , (1,3,6) , (1,3,7). Total 4 triplets.

入力

A[]={7,8,9} B = { 4,5,6 } C = { 1,2,3 }

出力 −トリプレットの数:0

説明

No Triplets that satisfy A[i]<B[j]<C[k]
を満たすトリプレットはありません

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

  • 乱数で初期化された同じ長さの整数配列A[]、B []、C[]を使用します。

  • 変数Nを取り、それらの長さを格納します。

  • 関数countTriplets(int a []、int b []、int c []、int n)は、同じ長さnの3つの配列すべてを入力として受け取り、指定された条件を満たすトリプレットを返します。

  • アレイごとに3つのループを使用してトラバースします。

  • 最も外側のループはa[]の場合は0<=i

  • a [i]

  • すべてのループの終わりに、カウントにはa [i] のようなトリプレットがあります。

  • 結果としてカウントを返します。

#include <bits/stdc++.h>
using namespace std;
int countTriplets(int a[],int b[],int c[], int n){
   int count = 0;
   for (int i = 0; i < n; i++){
      for (int j = 0; j < n; j++){
         for (int k = 0; k < n; k++){
            if(a[i]<b[j] && b[j]<c[k])
               { count++; }
         }
      }
   }
   return count;
}
int main(){
   int A[]={ 1,2,3}; int B[]={ 2,3,2}; int C[]={ 4,3,1};
   int N=3; //length of array
   cout <<endl<< "Number of triplets : "<<countTriplets(A,B,C,N);
   return 0;
}

出力

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

Number of triplets : 6

  1. (A [i]%K)がC++で最大になるような配列で素数Kを見つけます

    n個の整数を持つ配列Aがあるとします。 Kが素数であるような1つの要素Kを見つける必要があり、A [i] mod Kは、Kのすべての可能な値の中ですべての有効なiに対して最大です。そのような数が見つからない場合は、-1を返します。たとえば、A =[2、10、15、7、6、8、13]の場合、出力は13になります。3つの素数2、7、および13があります。A[i]の可能な最大値mod 2は1(15 mod 2)、7の場合は6 mod 7 =6、13の場合は10 mod 13=10になります。これが最大値です。 A [i] mod Kの値を最大化するには、KはAの最大素数である必要があり、A [i]

  2. C++で数値を除算する数値の桁数を検索します

    番号が与えられていると仮定します。数を均等に分割する数の桁数を数える必要があります。数値が1012で、結果が3であるとします。1012を均等に分割する3桁の1、1、および2があります。 これを解決するために、モジュラス演算を使用して数値の各桁を見つけ、数値がその桁で割り切れるかどうかを確認します。割り切れる場合は、カウンターを増やします。数字が0の場合は、その数字を無視します。 例 #include<iostream> using namespace std;    int countDivDigit(int num) {    int c