前提知识: 十进制与二进制相互转换 n&1 (与操作): 判断 n 二进制最右一位是否为 1如为1则返回真 n>>1 (移位操作): n 右移一位(可理解为删除最后一位,n除以2) 快速乘法模板: 无论是快速乘法 a ∗ b a*b a∗b还是快速幂 a b a^{b} ab ,对其进行二进制拆分,把b拆成二进制形式。 a ∗ b = a ∗ ( a*b=a*( a∗b=a∗(ck-1 ∗ 2 k − 1 + *2^{k-1}+ ∗2k−1+ck-2 ∗ 2 k − 2 + *2^{k-2}+ ∗2