首页 > 代码库 > 快速幂位运算版

快速幂位运算版

快速幂位运算版

技术分享
 1 #include<bits/stdc++.h> 2  3 using namespace std; 4  5 /*int pow_mod(int x , int  y , int p){ 6     int ret = 1; 7     while(y){ 8         if(y & 1) ret = (ret * x) % p; 9         printf("ret = %I64d , x = &I64d , y = %I64d\n" , ret , x , y);10         x = (x * x) % p ;11         y >>= 1;12     }13     return ret;14 }15 */16 int pow_mod(int m , int n , int k){17     int b = 1;18     while (n){19           if (n & 1)20              b = (b * m) % k;21           n = n >> 1 ;22           m = (m * m) % k;23     }24     return b;25 } 26 int main(){27     int x , y , p; //x 的 y 次幂 对 p取模28     cin >> x >> y >> p;29     cout << pow_mod(x , y , p);30 }
位运算

广告:清北学堂

快速幂位运算版