没错这个blog存在的目的就是摸鱼(诶干嘛摸我自己???)
去年这个时候学的算法也po上来吧 cuz我全忘光了
数学原理是这样的:
比如a的b次幂
我们可以将b化成几个2的几次幂相加的形式,这样时间复杂度就降到log级了。
说道2的几次幂,是不是想到了二进制?没错,具体代码操作就是二进制的方法。
int ksm(int a, int b, int c, int d)
{
c = a, d = 1;
while(b)
{
if(b % 2) d*=c;
c*=c;
b/=2;
}
return d;
}
c是每次a的2的第几次幂的那个数,d是结果,负责把余数为1时c的那个数乘起来。
不会发数学符号嘤嘤嘤 写的太难看了还好这个简单