劍指offer 數值的整數次方

2021-09-11 16:31:18 字數 850 閱讀 7082

題目描述

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。

解題思路

指數為負時,可以先對指數求絕對值,算出次方的結果後再取倒數

當底數為0,指數為負時,會出現對0求倒數情況,要特殊處理

0的0次方在數學上沒有意義,因此無論輸出0還是1都是可以接受的

在計算次方的時候,除了簡單的遍歷,我們可以使用遞迴的思想,如下公式,來減少計算量:

參考**

public

class

solution

else

if(exponent <0)

n =-exponent;

}double res =

powerunsignedexponent

(base, n)

;return exponent<0?

1/res: res;

}public

double

powerunsignedexponent

(double base,

int n)

}

**優化

可以使用右移運算子代替除以2,用位與運算子代替求餘運算子(%)來判斷乙個數是奇數還是偶數。

public

double

powerunsignedexponent

(double base,

int n)

劍指offer 數值的整數次方

1 題目描述 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。2 思路 需要考慮到的情況 1 指數為負數的時候,可以先對指數求絕對值,算出次方之後的結果再取倒數。2 當底數是0,指數是負數的時候,可以將無效變數設定為true,並返回0。3...

劍指offer 數值的整數次方

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。將指數大於0,小於0,等於0 底數不為0 的情況分開。其實指數為0的情況不必單獨拎出來 不進入if直接返回result為1.0 真正需要考慮的是,底數為0而指數為負的情況,數學上沒有意義。書...

劍指offer 數值的整數次方

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。1.最直觀的方法,遞迴求解a b a a b 1 當然也可以用迴圈實現。要注意特殊情況,指數為0時乘方結果都是1 指數為負數時的計算,可以先轉化為正數再求倒數,但是底數為0時不能求導。2.效...