11 數值的整數次方 JAVA

2021-08-30 04:37:09 字數 585 閱讀 2194

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

解題思路:

1.全面考察指數的正負、底數是否為零等情況。

2.寫出指數的二進位制表達,例如13表達為二進位制1101。

3.舉例:10^1101 = 100001*100100*10^1000。

4.通過&1和》1來逐位讀取1101,為1時將該位代表的乘數累乘到最終結果。

public

double

power

(double base,

int n)

else

if(n <0)

else

while

(exponent !=0)

temp *=temp;

//翻倍,翻倍次數和下面左移位數是一致的

exponent = exponent >>1;

//exponent左移一位

}return n>

0? ans :(1

/ans)

;}

11 數值的整數次方

要注意的幾個地方 1.如何判斷兩個double型別的資料是否相等。2.需要進行power有效性的判斷,0的負指數次方沒有意義。3.在進行power運算的時候要考慮效率。includeusing namespace std bool isvalid true bool ispositive true ...

11 數值的整數次方

題意 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。public class solution if exponent 0 return 1 res else return res 有一點很重要 整數包括正數 負數和零!還有一點 指數函...

11 數值的整數次方

題目描述 給定乙個 double 型別的浮點數 base 和 int 型別的整數 exponent。求base 的 exponent 次方。不得使用庫函式,不需要考慮大數問題 思路 不能用 比較兩個浮點數是否相等,因為有誤差。考慮輸入值的多種情況。實現 public double power dou...