下面是一個使用分治法來實現任意次方的高效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)
,是一種高效的計算任意次方的方法。