快速幂解法
附(比较好的快速幂讲解)
https://www.cnblogs.com/CXCXCXC/p/4641812.html
这个强大的工具:&和>>
&运算通常用于二进制取位操作,例如一个数 & 1 的结果就是取二进制的最末位。还可以判断奇偶x&1==0为偶,x&1==1为奇。
>>运算比较单纯,二进制去掉最后一位,不多说了,先放代码再解释。
1 int poww(int a, int b) { 2 int ans = 1, base = a; 3 while (b != 0) { 4 if (b & 1 != 0) 5 ans *= base; 6 base *= base; 7 b >>= 1; 8 } 9 return ans; 10 }
讲得真好,我都能理解了