PS:先不考虑异常输入, int溢出
int normalPow(int x, int n){
    int res = 1;
    while(n){
        res *= x;
        n --;
    }
    return res;
}
问题: n值小的时候计算量可以接受,一旦大了,计算量非常大,于是要将这个O(n)的算法优化。怎么优化?O(1)肯定不可能,所以往O(log(n))的方向考虑

long fastPow(long x, int power){
	long res = 1;
	while(power){
     	if(power&1) res = res * x;//如果奇数
     	x = x * x;//x-->x^2
     	power >>= 1;//除2,无论奇偶除2都一样,power是整数
	}
	return res;
}
原文:https://www.cnblogs.com/miyanyan/p/13804405.html