Implement pow(x, n).
T:
To save computing time, we can calculate pow(x, n/2) and reuse it.
A:
class Solution {
public:
double pow(double x, int n) {
if(x == 1.0) {
return 1.0;
}
if(x == -1.0) {
if(n%2 == 0) {
return 1.0;
}
return -1.0;
}
if(n < 0) {
return 1.0 / pow(x, -n);
}
if (n == 0) {
return 1;
}
double v = pow(x, n/2);
if(n%2 == 0) {
return v*v;
} else {
return v*v*x;
}
}
};
No comments:
Post a Comment