编写求解x的n次方的函数c++
时间: 2024-02-22 13:57:18 浏览: 142
可以使用递归或非递归方法来实现求解x的n次方的函数。以下是两种实现方法:
1. 递归方法:
```c++
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;
}
}
```
2. 非递归方法:
```c++
double power(double x, int n) {
double result = 1.0;
long long absN = abs(n);
while (absN > 0) {
if (absN & 1) {
result *= x;
}
x *= x;
absN >>= 1;
}
return n < 0 ? 1 / result : result;
}
```
以上两种方法都可以求解x的n次方,其中第一种方法使用了递归的思想,将n不断除以2直到n=0,然后将结果逐层返回,最终得到x的n次方。第二种方法使用了循环的思想,将n转换为二进制后,从低位到高位依次计算x的1,2,4,8,...次方,如果该位为1,则将结果乘上当前次方的值。
阅读全文