快速幂都能做什么?小小的算法也有大大的梦想
如何计算ana^nan(n是正整数)特殊情况:n为2的幂倍增一般情况:n不为2的幂在二进制下,从低到高不断遍历它的每一位,如果当前这位是1,我们就将r乘以a,n对2取余数 n % 2 相当于 n与1 n & 1而n除以2向下取整 n = floor(n / 2) 相当于 n向右移一位 n >> 1时间复杂度应用1:幂取模:计算ana^{n}an modmodmod mmm(a,n,m都是正整数)应用2:计算斐波那契数列第n项应用
复制链接