高效率幂运算

运行时间由线性O(N)到对数O(logN) 
如果幂为偶数,XN=XN/2 *XN/2, 
如果幂为奇数,XN=X(N-1)/2 *X(N-1)/2 *X,

如:X62求解只用9次乘法 
X3=X2*X, 
X7=(X3)2*X, 
… 
X62=(X31 )2

 static long pow(long x, int n) {
        if (n == 0) {
            return 1;
        }
        if (n % 2 == 0) {
            return pow(x * x, n / 2);
        } else {
            return pow(x * x, n / 2) * x;
        }
    }


 

原文地址:https://www.cnblogs.com/coloz/p/11041137.html