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