问题描述:
计算X^N.
算法思想:
如果N是偶数,我们有X^N = X^(N/2) × X^(N/2),如果N是奇数,则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 - 1) / 2) × X; }
算法时间复杂度为O(logN)。