Implement pow(x, n).
Example 1:
Input: 2.00000, 10 Output: 1024.00000
Example 2:
Input: 2.10000, 3 Output: 9.26100
由题意得,实现一个乘方的函数。用分治法的话不会超时,x^n = x^(n/2) * x^(n/2) * x^(n%2)。
Code(LeetCode运行13ms):
class Solution {
public:
double myPow(double x, int n) {
if (n < 0) {
return 1.0 / power(x, -n);
}
return power(x, n);
}
double power(double x, int n) {
if (n == 0) {
return 1;
}
double y = power(x, n/2);
if (n % 2 == 0) {
return y * y;
} else {
return y * y * x;
}
}
};