---
tags: data_structure_python
---
# Pow(x,n) <img src="https://img.shields.io/badge/-easy-brightgreen">
Implement pow(x, n), which calculates x raised to the power n $(x^n)$.
**Example 1:**
```
Input: 2.00000, 10
Output: 1024.00000
```
**Example 2:**
```
Input: 2.10000, 3
Output: 9.26100
```
**Example 3:**
```
Input: 2.00000, -2
Output: 0.25000
Explanation: 2-2 = 1/22 = 1/4 = 0.25
```
**Note:**
- -100.0 < x < 100.0
- n is a 32-bit signed integer, within the range [$−2^{31}$, $2^{31} − 1$]
# Solution
### Solution 1: Recursive
```python=
class Solution:
def myPow(self, x: float, n: int) -> float:
if n > 0:
return self.__myPow(x, n)
else:
return self.__myPow(1/x, -n)
def __myPow(self, x, n):
if n == 0:
return 1
else:
part = self.__myPow(x, n//2)
if n % 2 == 0:
return part * part
else:
return part * part * x
```