diff --git a/algorithms/recursion/exponentiation.py b/algorithms/recursion/exponentiation.py index 2c6cfdc..5709894 100644 --- a/algorithms/recursion/exponentiation.py +++ b/algorithms/recursion/exponentiation.py @@ -2,17 +2,20 @@ def exponentiation(baseNumber, power): answer = None - if power == 1: - answer = baseNumber - - elif power == 2: - answer = baseNumber * baseNumber - - else: + if power > 1: halfAnswer = exponentiation(baseNumber, power//2) answer = halfAnswer * halfAnswer if power%2 == 1: answer *= baseNumber - return answer \ No newline at end of file + elif power == 1: + answer = baseNumber + + elif power == 0: + answer = 1 + + else: # negative power + answer = 1 / exponentiation(baseNumber, abs(power)) + + return answer