【代码模板】快速幂(递归)

阅读 67

2022-02-19

class Solution {
public:
    double myPowHelper(double x, long n){
        if(n==0) return 1;
        double y=myPowHelper(x,n/2);
        return n&1?y*y*x:y*y; 
    }
    double myPow(double x, int n) {
        long n_long=n;//INT_MIN绝对值比INT_MAX大1,取反会溢出
        return  n_long>0?myPowHelper(x, n_long):1/myPowHelper(x, -n_long);
    }
};

精彩评论(0)

0 0 举报