From 5070a0bb28322d8562fd964baad4b9cb3917aebd Mon Sep 17 00:00:00 2001 From: rabbit Date: Mon, 17 Aug 2020 11:16:11 +0800 Subject: [PATCH 1/3] Create FindAverage.java add a findAverage java file in maths directory --- Maths/FindAverage.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Maths/FindAverage.java diff --git a/Maths/FindAverage.java b/Maths/FindAverage.java new file mode 100644 index 000000000..ecb13ccff --- /dev/null +++ b/Maths/FindAverage.java @@ -0,0 +1,25 @@ +package Maths; + +public class FindAverage { + + //Driver + public static void main(String[] args) { + int[] array = {2, 4, 10}; + assert findAverage(array) == 5; + } + + /** + * find average value of array + * + * @param array the array contains element and the sum does not + * excess long value limit + * @return average value + */ + public static int findAverage(int[] array) { + long sum = 0; + for (int i = 0 ; i < array.length; ++i) { + sum += array[i]; + } + return (int)(sum / array.length); + } +} From 9486101fb65180f02091871577750fdc6e83ba67 Mon Sep 17 00:00:00 2001 From: rabbit Date: Tue, 18 Aug 2020 09:41:32 +0800 Subject: [PATCH 2/3] Revert "Create FindAverage.java" This reverts commit 5070a0bb28322d8562fd964baad4b9cb3917aebd. --- Maths/FindAverage.java | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 Maths/FindAverage.java diff --git a/Maths/FindAverage.java b/Maths/FindAverage.java deleted file mode 100644 index ecb13ccff..000000000 --- a/Maths/FindAverage.java +++ /dev/null @@ -1,25 +0,0 @@ -package Maths; - -public class FindAverage { - - //Driver - public static void main(String[] args) { - int[] array = {2, 4, 10}; - assert findAverage(array) == 5; - } - - /** - * find average value of array - * - * @param array the array contains element and the sum does not - * excess long value limit - * @return average value - */ - public static int findAverage(int[] array) { - long sum = 0; - for (int i = 0 ; i < array.length; ++i) { - sum += array[i]; - } - return (int)(sum / array.length); - } -} From 94a65964d8905994c5b64a56128ad46007553341 Mon Sep 17 00:00:00 2001 From: rabbit Date: Tue, 18 Aug 2020 09:50:59 +0800 Subject: [PATCH 3/3] Update Average.java 1. add int type array 2. The equality of floating-point numbers should be judged by the absolute value of the difference less than a small number --- Maths/Average.java | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/Maths/Average.java b/Maths/Average.java index 35812ecc4..9f4bb3af6 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