Pow(x, n)

Implement pow(x, n).

实现一个函数,返回x的n次方结果。 这其实是道数学题。x^n 可以分解为 x^(n/2) * x^(n/2) * x^(n%2) (如果n/2有余数的话,最后n%2的结果就是2个n/2余数的和)

这题还要注意n可以是负数

public double myPow(double x, int n) {
    if (n > 0) {
        return pow(x, n);
    } else {
        return 1/pow(x,-n);
    }
}

public double pow(double x, int n) {
    if (n == 0) {
        return 1;
    }
    if (n == 1) {
        return x;
    }
    double v = pow(x, n/2);
    if (n % 2 == 0) {
        return v*v;
    } else {
        return v*v*x;
    }
}