就是求x的n次方 x^n = x^(n/2) * x^(n/2)*x^(n%2)
如果n< 0 最后结果应该是1/result
public class Solution {
    public double myPow(double x, int n) {
        if (n == 0) {
            return 1.0;
        }
        if (n == 1) {
            return x;
        }
        boolean isneg = n < 0;
        if (isneg) {
            n *= -1;
        }
        double res = myPow(x, n/2);
        double result;
        if (n % 2 == 0) {
            result = res* res;
        } else {
            result =  res * res * x;
        }
        if (isneg) {
            return 1/result;
        } else {
            return result;
        }
    }
}
 
没有评论:
发表评论