文章

68

粉丝

691

获赞

152

访问

597.8k

头像
c++,模运算规律+快速幂
P1549
发布于2020年5月28日 17:15
阅读数 9.7k

先把大数取模,然后就变成了快速幂的简单问题,

https://blog.csdn.net/csyifanZhang/article/details/105623224

↑求模运算的性质总结

 

  1. // s%k
  2. int Mod(string s, int k) {
  3. int res = 0, mod = 0;
  4. for (int i = 0; i < s.size(); i++) {
  5. res = mod * 10 + s[i] - '0';
  6. s[i] = res / k; mod = res % k;
  7. }
  8. return mod;
  9. }
  10. //(x^y)%z
  11. int quickPow(int x, int y, int z) {
  12. int res = 1;
  13. while (y > 0) {
  14. if (y & 1)res = (res*x) % z;
  15. x = (x*x) % z;
  16. y >>= 1;
  17. }
  18. return res;
  19. }
  20. int main() {
  21. string s; int Y, Z;
  22. while (cin >> s >> Y >> Z) {
  23. int X = Mod(s, Z);
  24. //x^y%k= x%k^y
  25. int res = quickPow(X, Y, Z);
  26. cout << res << endl;
  27. }
  28. }

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发