在C ++中执行给定操作后,数组中最大数目的相等数
给我们一个整数数组。目标是在执行给定操作后找到数组中等于的最大数-
选择两个元素a[i]和a[j],使i!=j和
递增a[i]并递减a[j](a[i]++,a[j]-)
我们将取数组的总和除以元素数。如果N是数组的大小,则
如果sum可被N整除,则相等的数字也将为N,否则相等的数字将为N-1。
输入值
Arr[]= { 1,2,3 }
输出结果
最大数目等于 3
说明-第一步Arr[]={2,2,2}递增1递减3元素之和为1+2+3=6,6%3==0,因此等于3
输入值
Arr[]= { 1,2,4 }
输出结果
最大数目等于 2
说明-第一步Arr[]={1,3,3}递增2并递减4元素的总和为1+2+4=7,7%3==1,因此相等的数字=3-1=2
以下程序中使用的方法如下
整数数组Arr[]用于存储整数。
整数“大小”存储数组的长度。
函数maxEqual(intarr[],intn)接受一个数组,将其大小作为输入,并在应用给定操作后返回该数组中存在的最大等号数。
首先,我们将计算数组元素的总和并存储在“sum”中
现在,按大小n(sum%n==0)检查总和的可除性。
如果可整,则返回n
否则返回n-1作为结果。
示例
#include <bits/stdc++.h> using namespace std; int maxEqual(int arr[], int n){ int sum = 0; for (int i = 0; i < n; i++){ sum += arr[i]; } if (sum%n==0){ return n; } return n-1; } int main(){ int Arr[] = { 1, 4, 1, 2}; //数组的大小 int size =4; cout <<" 最大数目等于"<< maxEqual(Arr,size); return 0; }
输出结果
Maximum count of equal numbers: 4