class Solution { public: double pow(double x, int n) { if(x == 1.0) { return x; } if(x == -1.0) { long long tester = n; if(tester < 0) { tester = -tester; } return (tester %2) ? -1.0 : 1.0; } double result = 1.0; double factor = n >= 0 ?x : 1.0/x; n = abs(n); for(int i = 0; i < n; ++i) { result *= factor; if(abs(result) < 0.00000001) { result = 0.0; break; } } return result; } };
No comments:
Post a Comment