C++ 解 xn。 (1)利用传统递归法求解该问题。
时间: 2023-09-11 13:10:49 浏览: 142
c++用递归方法求解汉诺塔问题
以下是C++传统递归法求解xn的代码:
```c++
#include <iostream>
using namespace std;
double power(double x, int n) {
if (n == 0) return 1.0; // x^0 = 1
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;
}
}
int main() {
double x = 2.0;
int n = -3;
cout << x << "^" << n << " = " << power(x, n) << endl;
return 0;
}
```
代码中的power函数用于计算x的n次方。当n为偶数时,利用递归计算x的n/2次方,然后返回其平方;当n为奇数时,则需要额外乘以一个x。需要注意的是,当n为负数时,需要计算x的倒数,即1/x的-n次方。
上述代码输出结果为:
```
2^-3 = 0.125
```
即2的-3次方等于1/8=0.125。
阅读全文