diff --git a/Maths/Area.java b/Maths/Area.java index 00e93e32..2faac63b 100644 --- a/Maths/Area.java +++ b/Maths/Area.java @@ -5,31 +5,31 @@ package Maths; */ public class Area { public static void main(String[] args) { + /* test cube */ - assert surfaceAreaCube(1) == 6; + assert Double.compare(surfaceAreaCube(1), 6.0) == 0; /* test sphere */ - assert surfaceAreaSphere(5) == 314.1592653589793; - assert surfaceAreaSphere(1) == 12.566370614359172; + assert Double.compare(surfaceAreaSphere(5), 314.1592653589793) == 0; + assert Double.compare(surfaceAreaSphere(1), 12.566370614359172) == 0; /* test rectangle */ - assert surfaceAreaRectangle(10, 20) == 200; + assert Double.compare(surfaceAreaRectangle(10, 20), 200.0) == 0; /* test square */ - assert surfaceAreaSquare(10) == 100; + assert Double.compare(surfaceAreaSquare(10), 100.0) == 0; /* test triangle */ - assert surfaceAreaTriangle(10, 10) == 50; + assert Double.compare(surfaceAreaTriangle(10, 10), 50.0) == 0; /* test parallelogram */ - assert surfaceAreaParallelogram(10, 20) == 200; + assert Double.compare(surfaceAreaParallelogram(10, 20), 200.0) == 0; /* test trapezium */ - assert surfaceAreaTrapezium(10, 20, 30) == 450; + assert Double.compare(surfaceAreaTrapezium(10, 20, 30), 450.0) == 0; /* test circle */ - assert surfaceAreaCircle(20) == 1256.6370614359173; - + assert Double.compare(surfaceAreaCircle(20), 1256.6370614359173) == 0; } /** @@ -38,7 +38,7 @@ public class Area { * @param sideLength side length of cube * @return surface area of given cube */ - public static double surfaceAreaCube(double sideLength) { + private static double surfaceAreaCube(double sideLength) { return 6 * sideLength * sideLength; } @@ -48,7 +48,7 @@ public class Area { * @param radius radius of sphere * @return surface area of given sphere */ - public static double surfaceAreaSphere(double radius) { + private static double surfaceAreaSphere(double radius) { return 4 * Math.PI * radius * radius; } @@ -59,7 +59,7 @@ public class Area { * @param width width of rectangle * @return area of given rectangle */ - public static double surfaceAreaRectangle(double length, double width) { + private static double surfaceAreaRectangle(double length, double width) { return length * width; } @@ -69,7 +69,7 @@ public class Area { * @param sideLength side length of square * @return area of given square */ - public static double surfaceAreaSquare(double sideLength) { + private static double surfaceAreaSquare(double sideLength) { return sideLength * sideLength; } @@ -80,7 +80,7 @@ public class Area { * @param height height of triangle * @return area of given triangle */ - public static double surfaceAreaTriangle(double base, double height) { + private static double surfaceAreaTriangle(double base, double height) { return base * height / 2; } @@ -91,7 +91,7 @@ public class Area { * @param height height of parallelogram * @return area of given parallelogram */ - public static double surfaceAreaParallelogram(double base, double height) { + private static double surfaceAreaParallelogram(double base, double height) { return base * height; } @@ -103,7 +103,7 @@ public class Area { * @param height height of trapezium * @return area of given trapezium */ - public static double surfaceAreaTrapezium(double base1, double base2, double height) { + private static double surfaceAreaTrapezium(double base1, double base2, double height) { return (base1 + base2) * height / 2; } @@ -113,7 +113,7 @@ public class Area { * @param radius radius of circle * @return area of given circle */ - public static double surfaceAreaCircle(double radius) { + private static double surfaceAreaCircle(double radius) { return Math.PI * radius * radius; } -} +} \ No newline at end of file diff --git a/Maths/PowRecursion.java b/Maths/PowRecursion.java index 24354870..dab336b3 100644 --- a/Maths/PowRecursion.java +++ b/Maths/PowRecursion.java @@ -2,10 +2,10 @@ package Maths; public class PowRecursion { public static void main(String[] args) { - assert pow(2, 0) == Math.pow(2, 0); - assert pow(0, 2) == Math.pow(0, 2); - assert pow(2, 10) == Math.pow(2, 10); - assert pow(10, 2) == Math.pow(10, 2); + assert Double.compare(pow(2, 0), Math.pow(2, 0)) == 0; + assert Double.compare(pow(0, 2), Math.pow(0, 2)) == 0; + assert Double.compare(pow(2, 10), Math.pow(2, 10)) == 0; + assert Double.compare(pow(10, 2), Math.pow(10, 2)) == 0; } /** @@ -17,10 +17,6 @@ public class PowRecursion { * @return the value {@code a}{@code b}. */ public static long pow(int a, int b) { - if (b == 0) { - return 1; - } else { - return a * pow(a, b - 1); - } + return b == 0 ? 1 : a * pow(a, b - 1); } -} +} \ No newline at end of file diff --git a/Maths/SumOfArithmeticSeries.java b/Maths/SumOfArithmeticSeries.java new file mode 100644 index 00000000..5d03c230 --- /dev/null +++ b/Maths/SumOfArithmeticSeries.java @@ -0,0 +1,40 @@ +package Maths; + +/** + *

+ * In mathematics, an arithmetic progression (AP) or arithmetic sequence is a sequence of numbers such that the + * difference between the consecutive terms is constant. Difference here means the second minus the first. + * For instance, the sequence 5, 7, 9, 11, 13, 15, . . . is an arithmetic progression with common difference of 2. + *

+ * Wikipedia: https://en.wikipedia.org/wiki/Arithmetic_progression + */ +public class SumOfArithmeticSeries { + public static void main(String[] args) { + + /* 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 */ + assert Double.compare(55.0, sumOfSeries(1, 1, 10)) == 0; + + /* 1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 */ + assert Double.compare(100.0, sumOfSeries(1, 2, 10)) == 0; + + /* 1 + 11 + 21 + 31 + 41 + 51 + 61 + 71 + 81 + 91 */ + assert Double.compare(460.0, sumOfSeries(1, 10, 10)) == 0; + + /* 0.1 + 0.2 + 0.3 + 0.4 + 0.5 + 0.6 + 0.7 + 0.8 + 0.9 + 1.0 */ + assert Double.compare(5.5, sumOfSeries(0.1, 0.1, 10)) == 0; + + assert Double.compare(49600.0, sumOfSeries(1, 10, 100)) == 0; + } + + /** + * Calculate sum of arithmetic series + * + * @param firstTerm the initial term of an arithmetic series + * @param commonDiff the common difference of an arithmetic series + * @param numOfTerms the total terms of an arithmetic series + * @return sum of given arithmetic series + */ + private static double sumOfSeries(double firstTerm, double commonDiff, int numOfTerms) { + return numOfTerms / 2.0 * (2 * firstTerm + (numOfTerms - 1) * commonDiff); + } +} \ No newline at end of file