核心思想是
當n為偶數時,a^n = a^n/2 × a^n/2
當n為奇數時,a^n = a^(n-1)/2 × a^(n-1)/2 × a
程式碼如下:
複製代碼代碼如下:
public class Power {
public static void main(String[] args) {
System.out.println(power(5.5,5));
}
private static double power(double base, int exponent) {
if (exponent == 0)
return 1;
if (exponent == 1)
return base;
double result = power(base, exponent >> 1);
result *= result;
if ((exponent & 0x1) == 1)
result *= base;
return result;
}
}
程式碼中也使用右移運算來取代除以2,用位元與運算來取代求餘判斷奇偶,這樣都要演算法更有效率的多。