diff --git a/Maths/Pow.java b/Maths/Pow.java new file mode 100644 index 000000000..605e01d98 --- /dev/null +++ b/Maths/Pow.java @@ -0,0 +1,26 @@ +package maths; + +public class Pow { + 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); + } + + /** + * Returns the value of the first argument raised to the power of the + * second argument + * + * @param a the base. + * @param b the exponent. + * @return the value {@code a}{@code b}. + */ + public static long pow(int a, int b) { + long result = 1; + for (int i = 1; i <= b; i++) { + result *= a; + } + return result; + } +} diff --git a/Maths/PowRecursion.java b/Maths/PowRecursion.java new file mode 100644 index 000000000..243548708 --- /dev/null +++ b/Maths/PowRecursion.java @@ -0,0 +1,26 @@ +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); + } + + /** + * Returns the value of the first argument raised to the power of the + * second argument + * + * @param a the base. + * @param b the exponent. + * @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); + } + } +}