#182. 数组两半平均值比较

    ID: 182 Type: Default 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>codingbatAp-1gesp1循环结构数学基础

数组两半平均值比较

计算数组两半平均值较大者

题目背景

聪聪正在学习如何处理数组数据。他遇到了一个任务,需要比较一个数组两部分的平均值。

题目描述

给定一个整数分数数组 scores,计算其前半部分的整数平均值和后半部分的整数平均值,并返回其中较大的一个。我们定义后半部分从索引 length/2 开始。数组的长度至少为 22

为了练习分解思想,请编写一个独立的辅助方法 int average(int[] scores, int start, int end),该方法计算数组 scores 中从索引 startend(包含 startend)的元素的整数平均值。然后,在你的主方法 scoresAverage() 中调用此辅助方法两次来实现功能。

通常情况下,平均值会使用浮点数计算,但在此题中我们使用整数,因此预期结果是精确的整数。

输入格式

输入以如下格式从标准输入中给出。

一行,包含多个整数,表示数组 scores 的元素,元素之间用空格分隔。

输出格式

输出以如下格式输出到标准输出中。

一个整数,表示前半部分和后半部分平均值中较大的一个。

样例

2 2 4 4
4
4 4 4 2 2 2
4
3 4 5 1 2 3
4

样例解释

样例 1: 数组为 [2, 2, 4, 4]。 前半部分为 [2, 2],平均值为 (2+2)/2=2(2+2)/2 = 2。 后半部分为 [4, 4],平均值为 (4+4)/2=4(4+4)/2 = 4。 较大的平均值为 44

样例 2: 数组为 [4, 4, 4, 2, 2, 2]。 前半部分为 [4, 4, 4],平均值为 (4+4+4)/3=4(4+4+4)/3 = 4。 后半部分为 [2, 2, 2],平均值为 (2+2+2)/3=2(2+2+2)/3 = 2。 较大的平均值为 44

样例 3: 数组为 [3, 4, 5, 1, 2, 3]。 前半部分为 [3, 4, 5],平均值为 (3+4+5)/3=4(3+4+5)/3 = 4。 后半部分为 [1, 2, 3],平均值为 (1+2+3)/3=2(1+2+3)/3 = 2。 较大的平均值为 44

数据范围

对于每个测试用例,时间限制 11 秒,内存限制 10241024 KiB。 数组 scores 的长度至少为 22。 数组元素的值在合理整数范围内。