1. 程式人生 > >劍指Offer(書):數值的整數次方

劍指Offer(書):數值的整數次方

== 浮點 int pow while 註意 ble double amp

題目:給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。

分析:

* 要註意以下幾點:
* 1.冪為負數時,base不能為0,不然求的時候是對0取倒數,會發生除0異常。
* 2.0的0次冪無意義,無特殊說明,一般來說是1。
public double power(double base, int exponent) {
    if (exponent == 0) {
        return 1.0;
    }
    if (exponent == 1) {
        return base;
    }
    if (Double.compare(base, 0.0) == 0 && exponent < 0) {
        
throw new ArithmeticException(" / by 0"); } int flag = exponent < 0 ? -exponent : exponent; double result = base; while (flag > 1) { result *= result; if ((flag & 1) == 1) { result *= base; } flag = flag >> 1; } return (exponent < 0) ? 1 / result : result; }

劍指Offer(書):數值的整數次方