計算整數的冪——遞歸算法

冪運算算法

計算一個整數的冪,常見的算法是使用N-1次天然乘法,可是下面的遞歸算法可能會更好一些,若是N是偶數,有X^N = X^(N/2) * X^(N/2),spa

若是X是奇數,那麼有X^N = X^((N-1)/2) * X^((N-1)/2) * X。下面正是這種算法的實現:code

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/2)*X;
}            

顯然,所須要的乘法次數最可能是2logN,用爲把問題分紅了最多須要兩次乘法。blog

相關文章
相關標籤/搜索