我直接来,特判加上,复杂度$O(log n)$
class Solution
{
public:
double Power(double base, int exponent)
{
if (!base) return 0;
else if (!exponent) return 1;
else if (exponent == INT_MIN) return 0;
else if (exponent < 0) return 1.0 / Power(base, -exponent);
double ans = 1;
for (; exponent; exponent >>= 1)
{
if (exponent & 1) ans = ans * base;
base = base * base;
}
return ans;
}
};