您的位置:首页 > 编程语言

Pow(X,n)

2015-09-15 22:52 225 查看
Pow(x, n)

Implement pow(x, n).

计算x^n,普通解法会超时,考虑二分求解,将n次计算乘积的过程二分优化,避免超时。

n为偶数时,如2,4,6。。。考虑x^n==(x^(n/2))*(x^(n/2)),用这种方法可以现将x^2的结果保存下来,再使n=n/2,即可达到二分降低计算次数的过程,如果n为奇数,则直接计算乘积的结果。

代码如下:

class Solution {
public:
double myPow(double x, int n) {
//判断n是否为负数
if(n<0)
{
x=1/x;
n=-1*n;
}
double result=1;
/*判断n的奇偶,奇数存结果,偶数降低次幂,底数翻倍*/
while(n>0)
{
n&1?result*=x:n=n;
n>>=1;
x*=x;

}
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  代码