Как найти суму элементов массива которые большие за среднее арифметическое того же массива
Как найти среднее арифметическое элементов массива я понятие имею:
int n [] = {5, 10, 15, 20, -50, 80, -35, 60, 30};
double sum = 0;
for (int x: n) {
sum += x;
}
System.out.print(sum/n.length);
но как найти суму элементов массива которые большие за среднее арифметическое если поиск ср. арифм. числа будет осуществляться выше показанным способом?
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
С использованием Stream API можно решить так:
int[] arr = {5, 10, 15, 20, -50, 80, -35, 60, 30};
double avg = Arrays.stream(arr).average().getAsDouble();
int sumOverAvg = Arrays.stream(arr).filter(n -> n > avg).sum();
System.out.println(avg);
System.out.println(sumOverAvg);
15.0
190
Аналогичное решение с циклом и условием, в котором элементы массива будут сопоставляться с вычисленным средним значением, тривиально.