class Solution {
// 快速幂+递归,时空均为O(logn)
public double myPow(double x, int n) {
// 防止负数最小值溢出
long N=n;
if(N>=0){
return quickmul(x, N);
}
return 1/quickmul(x, -N);
}
public double quickmul(double x,long N){
if(N==0){
return 1.0;
}
double temp=quickmul(x, N/2);
return (N%2==0)?temp*temp:temp*temp*x;
}
}