约 10 分钟
边看指数二进制位边累乘:long long qpow(long long a,long long n){ long long r=1; while(n){ if(n&1) r*=a; a*=a; n>>=1; } return r; }。n&1 取最低位,n>>=1 右移一位。
long long qpow(long long a,long long n){ long long r=1; while(n){ if(n&1) r*=a; a*=a; n>>=1; } return r; }
n&1
n>>=1
n=13 时,循环执行几轮后 n 变为 0?
登录 后可看答案