題目:
實現 pow(x, n) ,即計算 x 的 n 次冪函數。
示例:
輸入: 2.00000, 10 輸出: 1024.00000
個人思路:
判斷n是正數還是負數,如果是負數,則返回正數次冪的倒數。使用二分法,求一半的次冪,然後在平方(如果次冪爲奇數,那麼還需要再乘一次x)
代碼:
class Solution {
public double myPow(double x, int n) {
long N=n;
return N>=0?quickMul(x,N):1/quickMul(x,-N);
}
public double quickMul(double x, long N) {
if (N == 0) {
return 1.0;
}
double y = quickMul(x, N / 2);
return N % 2 == 0 ? y * y : y * y * x;
}
}