在C ++中通过重复减法使所有元素相同后找到最大数组和
假设我们有一个n个元素的数组。找到所有元素的最大可能和,以使所有元素都相同。只有允许的操作才能选择任意两个元素,并用两者的绝对差值替换其中较大的一个。假设元素像[9,12,3,6]。然后输出将为12。因此首先将A[1]替换为A[1]–A[3]=12–6=6。所以现在元素是[9,6,3,6],然后替换A[3],其中A[3]–A[2]=6–3=3。因此元素为[9,6,3,3]。然后将A[0]替换为A[0]–A[1]=9–6=3。因此元素为[3,6,3,3]。最后,将A[1]替换为A[1]–A[3]=6–3=3。因此元素为[3,3,3,3]。所以都一样。和是12
如果我们分析该运算,则将为A[i]=A[i]–A[j],其中A[i]>A[j]。因此,我们将取两个数字,然后用它们的绝对差替换较大的值。然后重复这些步骤,直到所有步骤都相同为止。
示例
#include<iostream>
#include<algorithm>
using namespace std;
int findSameElement(int arr[], int n) {
int gcd_val = arr[0];
for (int i = 1; i < n; i++)
gcd_val = __gcd(arr[i], gcd_val);
return gcd_val;
}
int getMaxSum(int arr[], int n) {
int value = findSameElement(arr, n);
return (value * n);
}
int main() {
int arr[] = {3, 9, 6, 6};
int n = sizeof(arr)/sizeof(arr[0]);
cout << "The maximum sum is: " << getMaxSum(arr, n);
}输出结果
The maximum sum is: 12
热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志