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

配列がC++でバランスが取れるように、追加する最小値を見つけます


n個の要素を持つ配列Aがあるとします。そして、nは偶数です。配列のバランスを取るために必要な値を見つける必要があります。配列のサイズが均一であるため、2つの半分を作成できます。左半分の合計と右半分の合計のバランスをとる必要があります。したがって、配列がA =[1、2、3、2、5、3]の場合、左半分の合計は6で、右半分の合計は10です。したがって、配列のバランスをとるには4が必要です。

タスクは単純です。前半と後半の合計を見つけてから、絶対差を見つけて戻ります。

#include<iostream>
#include<cmath>
using namespace std;
int getValueToBalance(int a[], int n) {
   int left_sum = 0;
   for (int i = 0; i < n/2; i++)
   left_sum += a[i];
   int right_sum = 0;
   for (int i = n/2; i < n; i++)
   right_sum += a[i];
   return abs(left_sum - right_sum);
}
int main() {
   int arr[] = {1, 2, 3, 2, 5, 3};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << "The number for balancing: " << getValueToBalance(arr, n);
}

出力

The number for balancing: 4

  1. C ++を使用して、配列内の数値の頻度を見つけます。

    配列があるとします。 n個の異なる要素があります。配列内の1つの要素の頻度を確認する必要があります。 A =[5、12、26、5、3、4、15、5、8、4]とすると、5の頻度を見つけようとすると、3になります。 これを解決するために、左から配列をスキャンします。要素が指定された数と同じである場合は、カウンターを増やします。それ以外の場合は、配列がなくなるまで次の要素に進みます。 例 #include<iostream> using namespace std; int countElementInArr(int arr[], int n, int e) {   &nbs

  2. 合計がC++で均等になるように、配列に最小数を追加しますか?

    いくつかの番号を持つ配列があるとします。要素の合計を均等にするために、それに追加される数値の最小数を指定する必要があります。数値は0より大きくなければなりません。したがって、要素の合計が奇数の場合は1を加算しますが、合計がすでに偶数の場合は2を加算して偶数にします。 アルゴリズム addMinNumber(arr) begin    s := 0    for each element e from arr, do       s := e + s    done    if s i