实现 pow(x, n) 用c++写完整程序, 用类进行封装
时间: 2024-05-13 12:16:45 浏览: 10
以下是一个使用类封装的完整程序实现 pow(x, n):
```cpp
#include <iostream>
class Power {
public:
double myPow(double x, int n) {
if (n == 0) {
return 1.0;
}
double half = myPow(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() {
Power p;
double x = 2.0;
int n = 10;
std::cout << x << " raised to power " << n << " is " << p.myPow(x, n) << std::endl;
return 0;
}
```
这个程序使用递归实现 pow(x, n) 的计算。当 n 为偶数时,我们可以将其分解为两个相等的子问题,这样可以节省递归调用的次数。当 n 为奇数时,我们需要额外乘上一个 x,因为:
x^n = x^(n/2) * x^(n/2) * x (n 为奇数)
= x^(n/2) * x^(n/2) / (1/x) (n 为负数)
最后,我们在主函数中创建了一个 Power 类对象,并使用其 myPow() 方法计算 2 的 10 次方。