题目

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
}
};

GitHub测试程序源码

05-23 06:13