幂运算的高效率算法

问题描述:

计算X^N.

算法思想:

如果N是偶数,我们有X^N = X^(N/2) × X^(N/2),如果N是奇数,则X^N = X^(N-1)/2 × X^(N-1)/2 × X。

算法描述:

long int
Pow(long int X, unsigned int N)
{
    if(N == 0)
        return 1;
    if(N == 1)
        return X;
    if(IsEven(N))
        return Pow(X × X, N / 2);
    else
        return Pow(X × X, (N - 1) / 2) × X;
}

算法时间复杂度为O(logN)。

posted @ 2014-02-27 21:22  ITtecman  阅读(429)  评论(0编辑  收藏  举报