快速幂模板
快速幂的运用比较常见,这种思想能将O(n)级降到log(n)级
,效率很高。
1 long long modexp(long long a, long long b, int mod) 2 { 3 long long res=1; 4 while(b>0) 5 { 6 //a=a%mod;(有时候n的值太大了会超出long long的储存,所以要先取余,不用时可以删去) 7 if(b&1)//&位运算:判断二进制最后一位是0还是1,&的运算规则为前后都是1的时候才是1; 8 res=res*a%mod; 9 b=b>>1;//(”>>“运算,相当于除以2,负数高位补1。”<<“左移补零) 10 a=a*a%mod; 11 } 12 return res; 13 }