给你两个数__int64 类型的整数 a ,b,c。问你,(a*b)%c的值是多少??我们知道: (a*b)%c = ((a%c)*(b%c))%c 。不过即使这样做,在c很大的情况下,(a%c)*(b%c)还是会越界。下面给出二进制的实现代码:

  

 #include<cstdio>
#include<cstring>
using namespace std; __int64 Pow(__int64 a, __int64 b, __int64 c)
{
a %= c;
b %= c;
__int64 ret = ; //计录(a*b)%c的值。
while(b)
{
if(b&)
ret += a, ret %= c;
a <<= ; a %= c; //a随着b中二进制位数而扩大每次扩大两倍。
b >>= ; //b来缩小两倍 去掉最后一位 由于当前最后一位我们用完了,
}
return ret;
} int main()
{
__int64 a, b, c;
while(~scanf("%I64d%I64d%I64d", &a, &b, &c))
{
printf("%I64d\n", Pow(a, b, c));
}
return ;
}

最新文章

  1. Ajax_04之jQuery中封装的Ajax函数
  2. html5,视频的兼容
  3. ASP.NET的MVC项目BUG——“所需的防伪表单字段‘__RequestVerificationToken’不存在”
  4. 最近发现docker感觉不错
  5. 【Android 基础】Android中全屏或者取消标题栏
  6. 制作C/C++动态链接库(dll)若干注意事项
  7. Linux之Samba的配置
  8. L001-oldboy-mysql-dba-lesson01
  9. ssh中使用set的地方及ref
  10. wireshark使用心得
  11. javascript设计模式——Module
  12. 记一次Spring aop的所遇到的问题
  13. 网络编程之非阻塞connect编写
  14. 【深度学习篇】---CNN和RNN结合与对比,实例讲解
  15. [Swift]LeetCode679. 24点游戏 | 24 Game
  16. UIPullRefreshFlash模块demo示例
  17. PIL模块
  18. 【解决】Server Tomcat v7.0 Server at localhost failed to start.
  19. 【linux】【tomcat】linux下定时重启tomcat
  20. flutter学习地址

热门文章

  1. AfxOleInit()和::CoInitialize(NULL)区别
  2. smarty 常用参数
  3. 分享到QQ空间、新浪微博、腾讯微博的代码!
  4. debian系统下安装ssh服务
  5. Latch-up 閂鎖效應 &amp; 靜電放電模式
  6. 在win7与XP系统下 C#缺省路径不同
  7. 字符串转换为float&lt;2&gt;
  8. tyvj1297 小气的小B
  9. 修改Fedora 20 启动项
  10. 《Algorithms 4th Edition》读书笔记——2.4 优先队列(priority queue)-Ⅵ