python使用递归函数求x的n次方
时间: 2024-05-05 22:17:00 浏览: 172
以下是Python中使用递归函数求x的n次方的代码:
```python
def power(x, n):
if n == 0:
return 1
elif n % 2 == 0:
return power(x*x, n/2)
else:
return x * power(x, n-1)
```
这个函数使用了一个递归算法来计算x的n次方。如果n等于0,它将返回1,否则它将检查n是否为偶数。如果n是偶数,它将递归地调用自身来计算x的n/2次方的平方。如果n是奇数,它将递归地调用自身来计算x的n-1次方,然后将x乘以结果。
相关问题
用python使用递归函数求x的n次方
以下是使用递归函数求x的n次方的Python代码:
```python
def power(x, n):
if n == 0:
return 1
elif n % 2 == 0:
return power(x*x, n/2)
else:
return x * power(x, n-1)
```
这个函数使用了分治思想,通过递归实现了对x的n次方的计算。当n为0时,返回1;当n为偶数时,将问题分解为求x^2的n/2次方;当n为奇数时,将问题分解为求x的n-1次方,再乘以x。
使用递归函数求x的n次方
可以使用如下递归函数求x的n次方:
```python
def power(x, n):
if n == 0:
return 1
elif n % 2 == 0:
return power(x**2, n//2)
else:
return x * power(x**2, (n-1)//2)
```
这个函数的思路是:
- 如果n等于0,返回1(任何数的0次方都是1)。
- 如果n是偶数,返回x的n/2次方的平方。
- 如果n是奇数,返回x乘以x的(n-1)/2次方的平方。
这个递归函数的时间复杂度是O(log n),因为每次递归都将指数减半。
阅读全文