Когда в постановку пихают фразу "Выведенный результат должен соответствовать заданию для любых входных данных.", то я полагаю, что во ввод могут запихнуть и обычные числа и с плавающей точкой и даже буквы (wn?!).
В общем я упростил код как мог с учетом условий постановки и трижды получил "Задача не прошла тестирование!".
Что не так?
Заранее thx!
package com.javarush.task.task05.task0507;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigDecimal;
/*
Среднее арифметическое
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int size = 0;
BigDecimal sum = new BigDecimal("0.0");
while (true) {
String number = reader.readLine();
BigDecimal numberBD = Solution.getZeroIfInvalid(number);
if (numberBD.compareTo(new BigDecimal("-1")) == 0) {
break;
}
sum = sum.add(numberBD);
size++;
}
System.out.println(sum.divide(new BigDecimal(size)));
}
private static BigDecimal getZeroIfInvalid(String value) {
try {
return new BigDecimal(value);
} catch (NumberFormatException ex) {
return new BigDecimal("0.0");
}
}
}