用c++的方式请使用 2 种方法,求解 x n。并且要求用户自己输入数据 (1)利用传统递归法求解该问题。 (2)使用二分法思想,结合递归方法求解该问题
时间: 2024-02-03 12:11:17 浏览: 129
c++计算题求x
1 利用传统递归法求解该问题
代码如下:
```c++
#include <iostream>
using namespace std;
double power(double x, int n) {
if (n == 0) return 1;
if (n == 1) return x;
double half = power(x, n / 2);
if (n % 2 == 0) {
return half * half;
} else {
return half * half * x;
}
}
int main() {
double x;
int n;
cout << "请输入底数x:";
cin >> x;
cout << "请输入指数n:";
cin >> n;
cout << x << "的" << n << "次方为:" << power(x, n) << endl;
return 0;
}
```
2. 使用二分法思想,结合递归方法求解该问题
代码如下:
```c++
#include <iostream>
using namespace std;
double myPow(double x, int n) {
if (n == 0) return 1;
double half = myPow(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;
int n;
cout << "请输入底数x:";
cin >> x;
cout << "请输入指数n:";
cin >> n;
cout << x << "的" << n << "次方为:" << myPow(x, n) << endl;
return 0;
}
```
阅读全文