package com.thealgorithms.maths;

public class PowRecursion {

    public static void main(String[] args) {
        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;
    }

    /**
     * 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}<sup>{@code b}</sup>.
     */
    public static long pow(int a, int b) {
        return b == 0 ? 1 : a * pow(a, b - 1);
    }
}
