冪的計算

黃志斌發表於2016-06-19

計算機程式設計藝術 · 卷2:半數值演算法(第3版)》即將由人民郵電出版社出版(見“圖靈社群:《計算機程式設計藝術》出版說明”),《計算機程式設計藝術 · 卷2:半數值演算法(英文版 · 第3版)》已經於2010年10月出版。這本書的 4.6.3 節“冪的計算”開頭幾頁如下所示:




演算法 A 對應的 Java 程式如下所示:

public static BigDecimal power(BigDecimal x, int n)
{ // n >= 0
  BigDecimal y = BigDecimal.ONE;
  for (BigDecimal z = x; ; z = z.multiply(z)) {
    if ((n & 1) != 0) y = y.multiply(z);
    if ((n >>= 1) == 0) break;
  }
  return y;
}

相關文章