[LeetCode] Pow(x, n)

double pow(double x, int n) {
	if (n == INT_MIN)
	{
		return 1.0/(pow(x, -(n+1))*x);
	}
	else if(n < 0)
	{
		return 1.0/pow(x, -n);
	}
	else if(n == 0)
	{
		return 1.0;
	}
	else if (n == 1)
	{
		return x;
	}
	else if (n%2 == 0)
	{
		return pow(x*x, n/2);
	}
	else
	{
		return pow(x*x, n/2)*x;
	}
	return x;
}

你可能感兴趣的:(LeetCode,刷题)