计算整数的幂——递归算法
幂运算
计算一个整数的幂,常见的算法是使用N-1次自然乘法,但是下面的递归算法可能会更好一些,如果N是偶数,有X^N = X^(N/2) * X^(N/2),
如果X是奇数,那么有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/2)*X; }
显然,所需要的乘法次数最多是2logN,用为把问题分成了最多需要两次乘法。