计算整数的幂——递归算法

幂运算算法

计算一个整数的幂,常见的算法是使用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

相关文章
相关标签/搜索