算法学习——求幂算法

计算X的N次幂明显的算法是使用N-1次乘法自乘。使用递归算法比较好。如果N是偶数,X的N次幂可以写成两个的N/2次幂的乘积,如果N是基数,则可以写成两个的N/2次幂的乘积再乘以X.这样算法的时间复杂度将变成logN.具体算法如下。


long pow(long x,unsigned n)

{
    if(n==0)
        return 1;
    else if(n==1)
        return x;
    else
    {
        if(n%2)//奇数
            return pow(x*x,n/2)*x;
        else
            return pow(x*x,n/2);
    }
}

你可能感兴趣的:(算法学习——求幂算法)