def power_with_negative_exponent(x, exp):
if x == 0:
return 0
if exp < 0:
return (1 / x) * power_with_negative_exponent(x, exp + 1)
if exp == 0:
return 1
else:
return x * power_with_negative_exponent(x, exp - 1)
print(power_with_negative_exponent(2, 3)) # 8
print(power_with_negative_exponent(2, 4)) # 16
print(power_with_negative_exponent(3, 2)) # 9
print(power_with_negative_exponent(3, 3)) # 27
print(power_with_negative_exponent(5, 4)) # 625
print(power_with_negative_exponent(8, -1)) # 0.125
print(power_with_negative_exponent(3, -2)) # 0.1111111111111111
'''
run:
8
16
9
27
625
0.125
0.1111111111111111
'''