14 數值的整次方

2021-08-14 16:24:10 字數 606 閱讀 7820

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

使用連乘的方法得到的時間複雜度 是 n.

這樣是找不到工作的。

需要對他就行優化。 就是

次冪 exponent 不是奇數就是偶數,

當它是偶數時,如求 10^10, 就是10^8*10^2 也就是10^ 1000 *10^0010

當它是奇數時,如求10^11,就是10^8 * 10^2 * 10^ 也就是

10^ 1000 *10^0010*10^0001

我們可以發現次冪可以用二進位制表示,像 二進位制8421(1111)每一位之間是就翻倍的關係,這樣前面求的冪乘以自己就相當於二進位制的左移一位。

(對於exponent)最後通過&1獲取當前位的狀態 ,>>獲取下一位的狀態. 

當前狀態為1說明改為有效,乘到結果中

public double power(double base, int n) else if(n<0)else

while(exponent!=0)

return n>=0?res:(1/res);       

}

數值的整次方

2 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題 如下 5 include6 using namespace std 7 8 bool g invaildinput false 9 10 ...

16 數值的整次方

實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。示例 1 輸入 2.00000,10 輸出 1024.00000 示例 2 輸入 2.10000,3 輸出 9.26100 示例 3 輸入 2...

16 數值的整次方

實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。示例 1 輸入 2.00000,10 輸出 1024.00000 示例 2 輸入 2.10000,3 輸出 9.26100 示例 3 輸入 2...