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;
}
}