算法練習--Pow(x,n)__二分法、遞歸

題目:

實現 pow(xn) ,即計算 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;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章