用c++实现pow(x,n),即计算x的整数n次幂函数(即,xn)
时间: 2023-12-10 19:41:25 浏览: 104
可以使用递归或循环来实现pow函数。以下是一个使用递归的实现:
```c++
double pow(double x, int n) {
if (n == 0) return 1;
if (n == 1) return x;
if (n < 0) return 1.0 / pow(x, -n);
double half = pow(x, n / 2);
if (n % 2 == 0) return half * half;
else return half * half * x;
}
```
这个实现首先处理特殊情况(n为0和1),然后将问题分解为计算x的n/2次幂,然后根据n的奇偶性返回结果。如果n为负数,则返回1除以x的-n次幂的结果。
以下是一个使用循环的实现:
```c++
double pow(double x, int n) {
if (n == 0) return 1;
if (n == 1) return x;
if (n < 0) {
x = 1.0 / x;
n = -n;
}
double res = 1;
while (n > 0) {
if (n % 2 == 1) res *= x;
x *= x;
n /= 2;
}
return res;
}
```
这个实现使用了二进制分解的思想,将n分解为二进制的形式,然后依次计算x的1次幂、2次幂、4次幂、8次幂等,并根据n的二进制位决定是否将结果乘上x的某次幂。
阅读全文