找到要添加的最小值,以使数组在C ++中变得平衡
假设我们有一个包含n个元素的数组A。n是偶数我们必须找到平衡数组所需的值。由于数组的大小是均匀的,所以我们可以分成两半。左半部分的总和与右半部分的总和需要平衡。因此,如果数组类似于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
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短