# Solution for x ^ n with negative values of n as well.
def square(x):
return x * x
def power(x, n):
if x in (0, 1):
return x
if n == 0:
return 1
if n < 0:
x = 1.0 / x
n = abs(n)
# Even number
if n % 2 == 0:
return square(power(x, n/2))
# Odd number
else:
return x * power(x, n - 1)
print ("0 ^ 0 = " + str(power(0, 0)))
print ("0 ^ 1 = " + str(power(0, 1)))
print ("10 ^ 0 = " + str(power(10, 0)))
print ("2 ^ 2 = " + str(power(2, 2)))
print ("2 ^ 3 = " + str(power(2, 3)))
print ("3 ^ 3 = " + str(power(3, 3)))
print ("2 ^ 8 = " + str(power(2, 8)))
print ("2 ^ -1 = " + str(power(2, -1)))
print ("2 ^ -2 = " + str(power(2, -2)))
print ("2 ^ -8 = " + str(power(2, -8)))