冪運算算法
計算一個整數的冪,常見的算法是使用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