Appearance
其实这是一个很精妙的思路,对比一下就可以发现:
差不多是这样:
# 求 a 的 n 次幂,ans 是结果 baseNum,ans = a,a for i in range(n-1): ans *= baseNum
是这样:
# 求 a 的 n 次幂,ans 是结果 powerNum,ans = a,1 while not n==0: if n&1:ans *= powerNum powerNum *= powerNum n >>= 1
另外,快速幂的时间复杂度是 O(log2n),而普通幂是 O(n)。