请在c++中用递归的方法编写函数void power(float x,int n)来计算x的n次方
时间: 2024-02-09 15:10:41 浏览: 93
好的,下面是用递归的方法编写的C++函数void power(float x,int n)来计算x的n次方的代码:
```c++
#include <iostream>
using namespace std;
float power(float x, int n) {
if (n == 0) return 1;
if (n == 1) return x;
if (n < 0) return power(1.0 / x, -n);
float half = power(x, n / 2);
if (n % 2 == 0) return half * half;
else return half * half * x;
}
int main() {
float x = 2.5;
int n = 3;
cout << x << "的" << n << "次方为:" << power(x, n) << endl;
return 0;
}
```
该函数中,首先判断n是否为0或1,如果是,则直接返回1或x。如果n为负数,则递归调用power(1.0 / x, -n)来计算x的-n次方。如果n为正数,则将n拆分成n/2和n-n/2两个部分,递归调用power(x, n / 2)来计算x的n/2次方,然后根据n的奇偶性返回half * half或half * half * x的结果。
阅读全文