下面是一個(gè)使用分治法來(lái)實(shí)現(xiàn)任意次方的高效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;
}
在這個(gè)示例中,我們定義了一個(gè)名為power
的函數(shù),它接受一個(gè)double
類(lèi)型的底數(shù)x
和一個(gè)int
類(lèi)型的指數(shù)n
作為參數(shù),并返回x
的n
次方的結(jié)果。在函數(shù)內(nèi)部,我們使用分治法來(lái)計(jì)算任意次方,將指數(shù)n
分解為兩個(gè)部分,并遞歸計(jì)算子問(wèn)題的解,然后根據(jù)指數(shù)n
的奇偶性來(lái)決定如何將子問(wèn)題的解合并起來(lái)。這種方法的時(shí)間復(fù)雜度為O(logn)
,是一種高效的計(jì)算任意次方的方法。