快速幂:
先将指数转换为二进制
如2^5中 5=0101;2^5=2^(1*2^0+0*2^1+1*2^2+0*2^3)=2^(1*2^0+1*2^2)=2^(1*2^0)*2^(1*2^2);
----------模板如下
int ans = 1;//要求的答案
int tmp = 4;//底数
int p=n;//指数
while(p)//如果p不等于零进入循环
{
if(p&1) ans*=tmp;//乘以底数次方
tmp*=tmp;//累乘
p>>=1;//指数右移一位