下面是一个使用分治法来实现任意次方的高效C++代码示例:
#include <iostream>
double power(double x, int n) {
if (n == 0) {
return 1.0;
}
double half = power(x, n / 2);
if (n % 2 == 0) {
return half * half;
} else {
return x * half * half;
}
}
int main() {
double x = 2.0;
int n = 10;
double result = power(x, n);
std::cout << x << " raised to the power of " << n << " is: " << result << std::endl;
return 0;
}
在这个示例中,我们定义了一个名为power
的函数,它接受一个double
类型的底数x
和一个int
类型的指数n
作为参数,并返回x
的n
次方的结果。在函数内部,我们使用分治法来计算任意次方,将指数n
分解为两个部分,并递归计算子问题的解,然后根据指数n
的奇偶性来决定如何将子问题的解合并起来。这种方法的时间复杂度为O(logn)
,是一种高效的计算任意次方的方法。