原理:将一个数的幂分解为二进制进行处理,同一位幂只需处理一次,出去了两两相乘的重复操作;
呈上代码:
int quickpow(int q,int n){ \\n为幂次,q为底数
int result=1;
while(n){ \\n大于1时
\\位运算,当n二进制末位为1时
if(n&1){
result*=q;
}
q*=q;
n>>=1;
}
return result;
}