这道题是用的快速幂的方法。比如n=3时,n的二进制为11,那么由于最后一位是1,所以result先乘上base,也就是x,再把n右移,第二位还是1,所以result再乘上这时的base,这时的base已经变成 x ∗ x x*x x∗x了。再将n右移,不满足循环条件,返回结果 x ∗ x ∗ x x*x*x x∗x∗x。总体来说就是,n的二进制位的每一位中的1对应着一个倍乘值,如下所示。
1
leetcode专题训练 50. Pow(x, n)
最新推荐文章于 2022-11-21 15:34:13 发布