在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 祝福语生日男朋友简短