정수멱을 구하는 고효율 알고리즘의 상세한 해석

719 단어
핵심 사상은 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를 대체하고 비트와 연산으로 나머지 판단 짝을 대체하면 알고리즘이 더욱 효율적이다.

좋은 웹페이지 즐겨찾기