C ++中允许为负的数组中成对乘积的最大和
在本教程中,我们将讨论一个程序,该程序在允许为负的数组中查找成对乘积的最大和。
为此,我们将提供一个包含整数的数组。我们的任务是在执行成对乘法时找到最大和。
示例
#include <bits/stdc++.h>
#define Mod 1000000007
using namespace std;
//找到最大和
long long int findSum(int arr[], int n) {
long long int sum = 0;
//排序数组
sort(arr, arr + n);
int i = 0;
while (i < n && arr[i] < 0) {
if (i != n - 1 && arr[i + 1] <= 0) {
sum = (sum + (arr[i] * arr[i + 1]) % Mod) % Mod;
i += 2;
}
else
break;
}
int j = n - 1;
while (j >= 0 && arr[j] > 0) {
if (j != 0 && arr[j - 1] > 0) {
sum = (sum + (arr[j] * arr[j - 1]) % Mod) % Mod;
j -= 2;
}
else
break;
}
if (j > i)
sum = (sum + (arr[i] * arr[j]) % Mod) % Mod;
else if (i == j)
sum = (sum + arr[i]) % Mod;
return sum;
}
int main() {
int arr[] = { -1, 9, 4, 5, -4, 7 };
int n = sizeof(arr) / sizeof(arr[0]);
cout << findSum(arr, n);
return 0;
}输出结果
87
热门推荐
10 七一祝福语明信片文案简短
11 结婚祝福语亲姐姐简短
12 新年留言老师祝福语简短
13 生日寿宴祝福语简短精辟
14 爸爸生日举杯祝福语简短
15 给舍友送祝福语简短
16 档案调动孩子祝福语简短
17 怎样给人送祝福语简短
18 周岁宴舅舅祝福语简短