设计一个递归函数,求x的n次幂,其中n为非须整数。在main函数中输入x和一个整数n,输出x的n次幂。c++
时间: 2024-05-12 17:15:36 浏览: 93
x的n次方递归函数
可以使用另一种方法,将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 {
return half * half * x;
}
}
double power(double x, double n) {
if (n < 0) {
return 1 / power(x, -n);
}
int intPart = static_cast<int>(n);
double decimalPart = n - intPart;
double intPower = power(x, intPart);
double decimalPower = pow(x, decimalPart);
return intPower * decimalPower;
}
int main() {
double x, n;
cout << "Enter x and n: ";
cin >> x >> n;
cout << x << "^" << n << " = " << power(x, n) << endl;
return 0;
}
```
我们首先定义了一个递归函数`power(double x, int n)`,用于计算整数次幂。接着定义了`power(double x, double n)`函数,用于计算非整数次幂。在这个函数中,我们首先判断指数是否为负数,如果是,则用1除以正指数的幂,得到负指数的幂。接着将指数分解成整数部分和小数部分,计算整数部分的幂和小数部分的幂,并相乘得到最终结果。
在main函数中,我们输入x和n,并调用`power`函数计算x的n次幂。最后输出结果。
阅读全文