1. 程式人生 > >數論-快速冪

數論-快速冪

快速冪演算法通過遞迴減小冪運算的規模。

long int Pow(long int X, unsigned int N)
{
    if (N == 0) {
        return 1;
    }
//    if (N == 1) {
//        return X;
//    }
    if (!(N & 1)) {                     //N為偶數
        return Pow(X * X, N / 2);
    }
    else
        return Pow(X * X, N / 2) * X;
}

N & 2等價於N % 2。

其中if (N == 1)的條件語句可以省略,將N作為奇數處理。