一種求正整數冪的高效算法詳解。本站提示廣大學習愛好者:(一種求正整數冪的高效算法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是一種求正整數冪的高效算法詳解正文
焦點思惟是
當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,用位與運算來取代求余斷定奇偶,如許都要算法加倍效力的多。