快速幂算法通过递归减小幂运算的规模。
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作为奇数处理。