题目
Implement pow(x, n).
Show Tags
Show Similar Problems
分析
一个不利用标准幂次函数的,求幂算法实现。
参考了一个很好的解析博客:Pow(x,n)问题详解
AC代码
class Solution {
public:
double myPow(double x, int n) {
if (n == 0)
return 1.0;
else {
if (n < 0)
{
//判断是否溢出
if (n == INT_MIN)
return 1.0 / (pow(x, INT_MAX)*x);
else
return 1.0 / pow(x, -n);
}else{
if (n % 2 == 0)
{
double temp = myPow(x, n >> 1);
return temp * temp;
}
else{
double temp = myPow(x, (n - 1) >> 1);
return temp * temp * x;
}
}//else
}//else
}
};