快速幂

  快速幂复杂度只有logn,比一般的n的算法要好得多,其实质就是枚举二进制位。

 1 typedef long long ll;
 2 
 3 ll quick_pow(ll a, ll b, ll p) {
 4     ll ans = 1, x = a % p;
 5     while (b) {
 6         if (b & 1)
 7             ans = ans * x % p;
 8         x = x * x % p, b >>= 1;
 9     } //按二进制位处理b
10     return ans % p; //避免p为1且b为0
11 }

 

posted @ 2017-11-17 20:54  Mr^Kevin  阅读(243)  评论(0编辑  收藏  举报