题目
Example 1:
Input: 2.00000, 10
Output: 1024.00000
Example 2:
Input: 2.10000, 3
Output: 9.26100
分析
我还以为这道题会考虑精度,然而并没有,
考虑一下算法复杂度就可以啦。
如果要求精度和范围的话,必须要考虑先扩大再缩小
class Solution {
public static double myPow(double x, int n) {
if (n == 0) {
return 1.0f;
}
if (x == 0) {
return 0f;
}
if (n == 1) {
return x;
}
if (n == -1) {
return 1 / x;
}
double half = myPow(x, n / 2);
double ret = half * half;
if (n % 2 != 0) {
ret = n > 0 ? half * half * x : half * half / x;
} else {
}
return ret;
}
}