问题描述:

计算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)。