用C++设计一个递归函数,求x的n次幂,其中n为非须整数。在main函数中输入x和一个整数n,输出x的n次幂。
时间: 2024-05-01 19:16:09 浏览: 101
C++实现的快速幂算法-Pow(x,n),本算法实现了迭代和递归两个版本
以下是一个递归函数,可以计算x的n次幂:
```c++
#include <iostream>
#include <cmath>
using namespace std;
double power(double x, int n) {
if (n == 0) {
return 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;
int n;
cout << "请输入x和n:";
cin >> x >> n;
cout << x << "的" << n << "次幂为:" << power(x, n) << endl;
return 0;
}
```
这个函数中,当n为偶数时,我们使用递归计算x的n/2次幂,然后将结果平方即可;当n为奇数时,我们将它转化为n-1,然后计算x的(n-1)/2次幂,再乘上x即可。如果n为负数,我们将它转化为正数,并在最后除以x即可。
阅读全文