Implement pow(x, n).
注意:n可能小于0
错误:pow(x,n) = x * pow(x,n - 1)栈溢出
代码:
public class Solution {
public double pow(double x, int n) {
if(n == 0)
return 1;
if(n < 0)
{
n = -n;
x = 1 / x ;
}
return x * pow(x, n - 1);
}
}
正确:logn
代码:
public class Solution {
public double pow(double x, int n) {
if(n == 0)
return 1;
if(n < 0)
{
n = -n;
x = 1 / x ;
}
double result = pow(x,n / 2);
if(n % 2 == 0)
return result * result;
else
return result * result * x;
}
}