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);
+ }
+ }
+}