2015年6月8日星期一

Pow(x, n) leetcode

Implement pow(xn).
就是求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;
        }
    }
}

没有评论:

发表评论