pow(x,i)
(1) i%2==0 pow(x,i)=pow(x,i/2)*pow(x,i/2);
(2) i%2!=0 pow(x,i)=pow(x,i-1)*x;
class Solution { public: double getPow(double x,long long i) { if (i == 0)return 1; if (i % 2 == 0) { double s = getPow(x, i / 2); return s*s; } else { return getPow(x, i - 1)*x; } } double myPow(double x, int n) { long long kn = n; if (kn < 0)kn = abs(1.0*kn); double ans = getPow(x, kn); return n >= 0 ? ans : 1 / ans; } };