使用二分法思想,结合递归方法求解 X的n次方,写一段完整的C++程序,要求让用户输入x和n的值
时间: 2024-02-06 10:10:20 浏览: 69
以下是一段完整的C++程序,可以通过二分法思想和递归方法求解X的N次方:
```c++
#include <iostream>
using namespace std;
double power(double x, int n) {
if(n == 0) {
return 1.0;
}
double res = power(x, n / 2);
if(n % 2 == 0) {
return res * res;
} else {
return res * res * x;
}
}
int main() {
double x;
int n;
cout << "请输入底数x: ";
cin >> x;
cout << "请输入指数n: ";
cin >> n;
double result = power(x, n);
cout << x << " 的 " << n << " 次方为: " << result << endl;
return 0;
}
```
程序首先定义了一个名为`power`的函数,用于求解X的N次方。该函数采用递归的方式实现,先判断N是否为0,如果是,则返回1.0;否则调用自身计算X的N/2次方,并将结果存储在res变量中。接下来,如果N是偶数,直接返回res的平方;如果是奇数,则返回res的平方乘以X。这个过程就是二分法思想的具体实现。
在主函数中,程序先要求用户输入X和N的值,然后调用`power`函数计算结果,并输出到控制台。
阅读全文