用递归函数求x的n次方
时间: 2024-05-12 20:14:27 浏览: 14
下面是一个递归函数求x的n次方的示例代码:
```
double power(double x, int n) {
if (n == 0) {
return 1.0;
}
double half = power(x, n / 2);
if (n % 2 == 0) {
return half * half;
} else if (n > 0) {
return half * half * x;
} else {
return half * half / x;
}
}
```
该函数首先判断n是否为0,如果是则返回1.0,因为任何数的0次方都等于1。如果n不是0,则递归计算x的n/2次方,并将结果存储在变量half中。如果n是偶数,则直接返回half的平方;否则,如果n为正数,则返回half的平方再乘以x,否则返回half的平方再除以x。这样,递归过程会将n不断减半,直到n为0,从而结束递归。
相关问题
使用递归函数求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),因为每次递归都将指数减半。
python使用递归函数求x的n次方
以下是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乘以结果。