實現函式double power(double base, int exponent),求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。
1.暴力求解
發現在n超過210000000的時候超過時間限制
class
solution
if(n<0)
return
1/ans;}if
(n>0)
return ans;
}return0;
}};
2.遞迴求解
需要用的知識點:
//遞迴
//& 按位與運算
//n&1:這裡用&運算,從而判斷二進位制數的最後一位為記述還是偶數,當n的最後一位=0,和1&之後 則為 0 。只有當n = 1 則 &1為 1
// && 表示邏輯與運算
//即為and。當運算子兩邊的表示式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。&&還具有短路的功能,即如果第乙個表示式為false,則不再計算第二個表示式
//移運算子(<<) 左移運算將乙個位串資訊向左移指定的位,右端空出的位用0補充。例如014<<2,結果為060,即48。 左移時,空出的右端用0補充,左端移出的位的資訊就被丟棄。在二進位制數運算中,在資訊沒有因移動而丟失的情況下,每左移1位相當於乘2。如4 << 2,結果為16。 比如1100(12)<<1,則為11000(24)
//右移運算子(>>) 右移運算將乙個位串資訊向右移指定的位,右端移出的位的資訊被丟棄。例如12>>2,結果為3。與左移相反,對於小整數,每右移1位,相當於除以2。在右移時,需要注意符號位問題。對無符號資料,右移時,左端空出的位用0補充。對於帶符號的資料,如果移位前符號位為0(正數),則左端也是用0補充;如果移位前符號位為1(負數),則左端用0或用1補充,取決於計算機系統。對於負數右移,稱用0 補充的系統為「邏輯右移」,用1補充的系統為「算術右移」。比如1100(12)>>1,則為0110(則為6),相當於除以2
class
solution
else
return
mypow
(x*x,n>>1)
;}};
數值整數次方
題目 實現函式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,如果...