核心思想是
當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,用位與運算來代替求余判斷奇偶,這樣都要算法更加效率的多。