Problem Statement
The task is to calculate x
raised to the power of n
(i.e., x^n
) using recursion.
Definition
- The power function calculates
x
raised to the power n
where x
is the base and n
is the exponent.
- Formula:
x^n = x imes x imes ... imes x
(n times)
Example Inputs
Explanation: 2^3 = 2 imes 2 imes 2 = 8
.
Approach - Use Recursion
Approach
Recursion is a technique in which a function calls itself to break a problem into smaller sub-problems. For the power function, the idea is to calculate x^n
by multiplying x
by x^{n-1}
recursively, until the exponent becomes 0 (the base case).
Steps
- If
n = 0
, return 1 (base case: any number raised to the power 0 is 1).
- If
n > 0
, recursively calculate x^n = x imes x^{n-1}
.
- Return the result.
Time & Space Complexity
- Time Complexity: O(n), where
n
is the exponent. We make n
recursive calls until the exponent becomes 0.
- Space Complexity: O(n), due to the recursion stack. Each recursive call adds a layer to the stack.
Code Snippet
Dry Run
Let’s dry run the code with the input x = 2
and n = 3
.
- power(2, 3): 2 * power(2, 2)
- power(2, 2): 2 * power(2, 1)
- power(2, 1): 2 * power(2, 0)
- power(2, 0): 1 (base case)
- Return from power(2, 1): 2 * 1 = 2
- Return from power(2, 2): 2 * 2 = 4
- Return from power(2, 3): 2 * 4 = 8
Output:
Complexity Analysis
Time and Space Complexity
- Time Complexity: O(n) because we make
n
recursive calls.
- Space Complexity: O(n) due to the recursion stack. The depth of the recursion will be
n
before reaching the base case.
Conclusion
Using recursion to calculate x^n
is a simple and intuitive approach. The recursive method breaks the problem into smaller subproblems by reducing the exponent at each step. However, for larger values of n
, the time complexity can be inefficient. An optimized solution could involve using the method of exponentiation by squaring, which reduces the time complexity to O(log n).