Дан массив, состоящий из n
целых чисел. Найдите сумму и количество элементов массива, значения которых
больше среднего арифметического всех элементов.
Вход. В первой
строке задано число n
(1 ≤ n ≤ 100) – количество элементов в массиве. Во второй строке
записаны n целых чисел, каждое из которых по модулю не превышает 100.
Выход. Выведите
сумму и количество элементов массива, значения которых больше среднего
арифметического всех элементов.
Пример входа |
Пример выхода |
5 1 6 2 6 3 |
12 2 |
массивы
Сначала вычислим
сумму s заданных чисел. Среднее
арифметическое всех чисел равно s / n. Далее найдем сумму и количество
чисел, которые больше среднего арифметического.
Пример
В примере
задано n = 5 чисел. Их
сумма равна s = 1 + 6 + 2 + 6 + 3 = 18. Среднее арифметическое
чисел равно s / n = 18 / 5 = 3.6. Имеются два числа, больших 3.6: это две шестерки.
Их сумма равна 12.
Реализация алгоритма
Читаем входной массив. Вычисляем сумму его элементов.
scanf("%d",&n);
for(i = 0; i < n; i++)
{
scanf("%d",&m[i]);
s += m[i];
}
Вычисляем сумму sum
и количество cnt элементов массива m[i], которые больше среднего
арифметического s / n. Заметим, что неравенство m[i] > s / n эквивалентно m[i] * n
> s.
sum = cnt = 0;
for(i = 0; i < n; i++)
if (m[i] * n > s) //
m[i] > s / n
{
sum += m[i];
cnt++;
}
Выводим ответ.
printf("%d %d\n",sum,cnt);
Python реализация
Читаем входные данные.
n = int(input())
lst = list(map(int, input().split()))
Вычисляем среднее арифметическое списка.
ave = sum(lst) / len(lst)
Строим список из чисел, больших среднего
арифметического.
above_ave = [x for x in lst if x > ave]
Вычисляем сумму и количество чисел, больших среднего
арифметического.
sum = sum(above_ave)
cnt = len(above_ave)
Выводим ответ.
print(sum, cnt)