设计一个递归函数,求x的n次幂,其中n为非须整数。在main函数中输入x和一个整数n,输出x的n次幂c++。
时间: 2024-05-12 12:15:37 浏览: 76
C++实现的快速幂算法-Pow(x,n),本算法实现了迭代和递归两个版本
可以使用幂级数公式求解,具体实现如下:
```c++
#include <iostream>
using namespace std;
double power(double x, int n) {
if (n == 0) return 1;
if (n < 0) return 1 / power(x, -n);
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和n:" << endl;
cin >> x >> n;
double result = power(x, n);
cout << x << "的" << n << "次幂为:" << result << endl;
return 0;
}
```
该递归函数的时间复杂度为$O(log_2n)$,可以较好地处理大数幂的情况。
阅读全文