Java Language Computing the Nth power of a number


The following method computes the value of num raised to the power of exp using recursion:

public long power(final int num, final int exp) {
    if (exp == 0) {
        return 1;
    if (exp == 1) {
        return num;
    return num * power(num, exp - 1);

This illustrates the principles mentioned above: the recursive method implements a base case (two cases, n = 0 and n = 1) that terminates the recursion, and a recursive case that calls the method again. This method is O(N) and can be reduced to a simple loop using tail-call optimization.