用传统的递归法求解x的n次方 c++实现
时间: 2023-11-10 14:12:02 浏览: 67
以下是用传统的递归法求解x的n次方的C++实现:
```cpp
#include <iostream>
double power(double x, int n) {
if (n == 0) { // n等于0,直接返回1
return 1;
}
double half = power(x, n/2); // 计算x的n/2次方
if (n % 2 == 0) { // n为偶数
return half * half;
} else if (n > 0) { // n为奇数且大于0
return half * half * x;
} else { // n为奇数且小于0
return half * half / x;
}
}
int main() {
double x;
int n;
std::cout << "请输入底数x和指数n:" << std::endl;
std::cin >> x >> n;
std::cout << x << "的" << n << "次方为:" << power(x, n) << std::endl;
return 0;
}
```
在函数`power`中,首先判断n的值,如果n等于0,直接返回1;如果n不等于0,则递归计算x的n/2次方,然后根据n的奇偶性,将计算结果平方或者平方后再乘以一个x,最后返回结果。在主函数中,先读入x和n的值,然后调用函数`power`计算x的n次方,并输出结果。