diff --git a/Maths/Average.java b/Maths/Average.java index 35812ecc..9f4bb3af 100644 --- a/Maths/Average.java +++ b/Maths/Average.java @@ -4,10 +4,13 @@ package Maths; * Calculate average of a list of numbers */ public class Average { + private static final double SMALL_VALUE = 0.00001f; public static void main(String[] args) { - assert average(new double[]{3, 6, 9, 12, 15, 18, 21}) == 12; - assert average(new double[]{5, 10, 15, 20, 25, 30, 35}) == 20; - assert average(new double[]{1, 2, 3, 4, 5, 6, 7, 8}) == 4.5; + assert Math.abs(average(new double[]{3, 6, 9, 12, 15, 18, 21}) - 12) < SMALL_VALUE; + assert Math.abs(average(new double[]{5, 10, 15, 20, 25, 30, 35}) - 20) < SMALL_VALUE; + assert Math.abs(average(new double[]{1, 2, 3, 4, 5, 6, 7, 8}) - 4.5) < SMALL_VALUE; + int[] array = {2, 4, 10}; + assert average(array) == 5; } /** @@ -23,4 +26,19 @@ public class Average { } return sum / numbers.length; } -} + + /** + * find average value of int array + * + * @param array the array contains element and the sum does not + * excess long value limit + * @return average value + */ + public static int average(int[] array) { + long sum = 0; + for (int i = 0 ; i < array.length; ++i) { + sum += array[i]; + } + return (int)(sum / array.length); + } +} \ No newline at end of file