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

C++での配列の平衡インデックス


この問題では、n個の整数値で構成される配列arr[]が与えられます。私たちの仕事は、配列の平衡指数を見つけるプログラムを作成することです。

均衡指数 インデックスの前のすべての要素の合計が、インデックスの後のすべての要素の合計と同じになるインデックスです。

サイズnの配列arr[]の場合、平衡指数は次のようになります。

sum(arr [0…e-1])=sum(arr [e…n-1])

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

入力: arr [] ={5、1、2、8、3、4、1}

出力: 3

説明:

arr [0] + arr [1] + arr [2] =arr [4] + arr [5] + arr [6]

=> 5 + 1 + 2 =3 + 4 + 1

=> 8 =8

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

簡単なアプローチは、天気を継続的にチェックして要素を見つけることです。配列の任意の要素が平衡数になる可能性があります。

このために、ネストされたループを使用します。配列の要素の要素を反復処理する外側。そして、内部は、配列の任意の要素を平衡数にすることができるかどうかをチェックします。

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

#include <bits/stdc++.h>
using namespace std;

int findEquilibriumIndex(int arr[], int n)
{
   int prevSum, nextSum;

   for (int i = 0; i < n; ++i) {  

      prevSum = 0;
      for (int j = 0; j < i; j++)
         prevSum += arr[j];
      nextSum = 0;
      for (int j = i + 1; j < n; j++)
         nextSum += arr[j];
         
      if (prevSum == nextSum)
         return i;
   }
   return -1;
}

int main() {
   
   int arr[] = {5, 1, 2, 8, 3, 4, 1};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"The equilibrium index is "<<findEquilibriumIndex(arr, n);
   return 0;
}

出力-

The equilibrium index is 3

  1. 2D配列をC++関数に渡す

    配列は引数として関数に渡すことができます。このプログラムでは、2次元配列の要素を関数に渡して表示するように実行します。 アルゴリズム Begin The 2D array n[][] passed to the function show(). Call function show() function, the array n (n) is traversed using a nested for loop. End サンプルコード #include <iostream> using namespace std; void show(int n[4][3]); int

  2. 配列をC++関数に渡す

    C ++では、配列全体を引数として関数に渡すことはできません。ただし、インデックスなしで配列の名前を指定することにより、配列へのポインタを渡すことができます。 1次元配列を関数の引数として渡したい場合は、次の3つの方法のいずれかで関数の仮パラメーターを宣言する必要があります。3つの宣言メソッドはすべて、整数ポインターが実行されることをコンパイラーに通知するため、同様の結果を生成します。受け取る必要があります。 配列を関数に渡す方法は3つあります- ポインタとしての正式なパラメータ void myFunction(int *param) {    // Do so