class Solution {
public:
double myPow(double x, int n) {
long long N = n;
return (N >= 0) ? quickMulti(x, N) : 1.0 / quickMulti(x, -N);
}
private:
double quickMulti(double x, long long n) {
if (n == 0) {
return 1.0;
}
double y = quickMulti(x, n / 2);
return (n % 2 == 0) ? y * y : y * y * x;
}
};