給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。
這道題是感覺比較難的一道題。
用庫函式很簡單,但是不在考慮範圍之內。
首先分析
(1)當指數(exponent)<0,要考慮底數(base)是不是為0,例如0^-5=1/0^5,會出錯。
(2)當指數(exponent)=0,最紅的值為1;
(3)當指數(exponent)>0,就按照正常的進行計算;
接下來,
我們要知道乙個公式,
這個公式有什麼用呢?
n是偶數的時候,用上面的公式,n是奇數的時候,用下面的公式。
舉例說明,要求10^13,指數13的二進位制是 1101。可以分解為10^0001 * 10^0100 * 10^1000
通過&1和》1來逐位讀取1101,為1時將該位代表的乘數累乘到最終結果。
**中有個不好理解的地方是:indextemp *= indextemp;
這一句**記錄的是 (底數)^2、(底數)^4、(底數)^8……….
public
class solution
temp = -exponent;
}else
if(exponent == 0)else
double result = 1;
double indextemp = base;
while(temp != 0)
indextemp *= indextemp;
temp = temp>>1;
}return exponent >=0? result:(1/result);
}}
數值整數次方
題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮 大數問題。includebool equal double num1,double num2 double powerwithunsignede...
數值整數次方
題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮 大數問題。includebool equal double num1,double num2 double powerwithunsignede...
數值的整數次方
題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大樹問題。這道題目有以下幾點需要注意 0的0次方是無意義的,非法輸入 0的負數次方相當於0作為除數,也是無意義的,非法輸入 base如果非0,如果...