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

C++の2つの配列の合計によって形成されたセットのN番目のアイテムを検索します


この問題では、サイズmの2つのソートされた配列arr1[]とarr2[]と要素Nが与えられます。私たちのタスクは、2つの配列の合計によって形成されるセット内のN番目のアイテムを見つけることです。

コードの説明 −ここでは、要素1のarr1と要素1の合計で構成されるセットを作成します。つまり、sum =arr1 [i] + arr2 [j]です。ここで、i、j

問題を理解するために例を見てみましょう

入力

arr1[] = {3, 1, 5} , arr2[] = {6, 2, 8} , N = 4

出力

説明

セットの要素は-

です
9 (3+6 and 1 +8) , 5 (3 + 2) , 11 (3+8, 5+6), 7 (1+6, 5+2), 3 (1+2), 13 (5+8).
The fourth element is 7.

ソリューションアプローチ

解決策のアプローチは、配列の要素の合計を見つけることによって、セットの要素を見つけることです。このために、ネストされたループ、arr1の要素を反復するための外側のループ、およびarr2の要素を反復するための内側のループを使用します。また、内部ループの反復ごとに、合計をセットに格納します。これにより、要素の重複は許可されません。すべての合計値が入力されたら、セットをトラバースしてN番目の要素を返します。

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;
void calcSumVariables(int sum[], int n) {
   float SUMX = 0;
   for (int i = 0; i < n; i++) {
      SUMX += sum[i];
   }
   SUMX /= (n - 1);
   for (int i = 0; i < n; i++)
      cout<<"\nx"<<(i + 1)<<" = "<<(SUMX - sum[i]);
}
int main(){
   int sum[] = {3, 8, 6, 7, 4, 5, 9 };
   int N = sizeof(sum) / sizeof(sum[0]);
   cout<<"The value of variables that form the sum are ";
   calcSumVariables(sum, N);
   return 0;
}

出力

The value of variables that form the sum are
x1 = 4
x2 = -1
x3 = 1
x4 = 0
x5 = 3
x6 = 2
x7 = -2

  1. TwoSumIV-入力はC++のBSTです

    二分探索木と1つのターゲット値があるとします。合計が指定されたターゲットと等しくなるように、BSTに2つの要素が存在するかどうかを確認する必要があります。 したがって、入力が次のような場合 その場合、出力はTrueになります。 これを解決するには、次の手順に従います- 配列を定義するv 関数inorder()を定義します。これはルートになります ルートがnullの場合、- 戻る 順序なし(ルートの左側) ルートの値をvに挿入 順序なし(ルートの左側) 関数findnode()を定義します。これにはkがかかります n:=vのサ

  2. C ++を使用して、N階乗の合計の最後の2桁を検索します。

    ここでは、最後の2桁を取得する方法を説明します。 N階乗の合計の単位桁と10桁。したがって、N =4の場合、1になります。 + 2! + 3! + 4! =33.したがって、単位の場所は3で、10の場所は3です。結果は33になります。 10の後、10の場所は0のままになります。N=10以上の場合、00になります。階乗数のN=1から10のグラフを作成できます。 これらの手順を使用してこの問題を解決できます- nの値が10未満の場合、(1!+ 2!+…+ n!)mod 10 それ以外の場合、nの値が10以上の場合、(1!+ 2!+…+ 10!)mod 10 =13 例 #inc