在 C++ 中执行给定操作后数组中相等数字的最大数量
我们得到一个整数数组。目标是在执行给定操作后找到数组中相等的最大数字。
选择两个元素 a[i] 和 a[j],使得 i != j 且
递增 a[i] 并递减 a[j] ( a[i]++,a[j]-- )
我们将取数组的总和并除以元素的数量。如果 N 是数组的大小,则
如果总和能被 N 整除,则相等数字也为 N,否则相等数字为 N-1。
输入
Arr[]= { 1,2,3 }输出
Maximum count of equal numbers : 3
说明 - 第一步后 Arr[] = { 2,2,2 } 递增 1 并递减 3 元素总和为 1+2+3=6,6%3==0,因此相等数字=3
输入
Arr[]= { 1,2,4 }输出
Maximum count of equal numbers : 2
说明 - 第一步后 Arr[] = { 1,3,3 } 递增 2 并递减 4 元素总和为 1+2+4=7,7%3==1,因此相等数字=3-1=2
下面程序中使用的方案如下
整数数组 Arr[] 用于存储整数。
整数 ‘size’ 存储数组的长度。
函数 maxEqual( int arr[], int n) 以数组及其大小作为输入,并在应用给定操作后返回数组中存在的相等数字的最大数量。
首先,我们将计算数组元素的总和并存储在 ‘sum’ 中
现在检查 sum 能否被 size 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};
// size of an array
int size =4;
cout <<" Maximum count of equal numbers :"<< maxEqual(Arr,size);
return 0;
}输出
Maximum count of equal numbers: 4
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP