标签:现在 color 位运算 原理 ase log http 次方 href
最近在51nod刷题,虽然快期末了。看到了一题目http://www.51nod.com/Question/Index.html#!#questionId=764(输出N^N(N的N次方)的十进制表示的末位数字)
评论说用了快速幂,我就看了一下
如下
int poww(int a,int b){ int ans=1,base=a; while(b!=0){ if(b&1!=0) ans*=base; base*=base; b>>=1; } return ans; }
说明:
快速幂这个东西比较好理解,但实现起来到不老好办,记了几次老是忘,今天把它系统的总结一下防止忘记。
首先,快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多。它的原理如下:
假设我们要求a^b,那么其实b是可以拆成二进制的,该二进制数第i位的权为2^(i-1),例如当b==11时
标签:现在 color 位运算 原理 ase log http 次方 href
原文地址:https://www.cnblogs.com/tttfu/p/10152656.html