(a*b)%c 问题
2024-10-18 11:19:49
给你两个数__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 ;
}
最新文章
- Ajax_04之jQuery中封装的Ajax函数
- html5,视频的兼容
- ASP.NET的MVC项目BUG——“所需的防伪表单字段‘__RequestVerificationToken’不存在”
- 最近发现docker感觉不错
- 【Android 基础】Android中全屏或者取消标题栏
- 制作C/C++动态链接库(dll)若干注意事项
- Linux之Samba的配置
- L001-oldboy-mysql-dba-lesson01
- ssh中使用set的地方及ref
- wireshark使用心得
- javascript设计模式——Module
- 记一次Spring aop的所遇到的问题
- 网络编程之非阻塞connect编写
- 【深度学习篇】---CNN和RNN结合与对比,实例讲解
- [Swift]LeetCode679. 24点游戏 | 24 Game
- UIPullRefreshFlash模块demo示例
- PIL模块
- 【解决】Server Tomcat v7.0 Server at localhost failed to start.
- 【linux】【tomcat】linux下定时重启tomcat
- flutter学习地址
热门文章
- AfxOleInit()和::CoInitialize(NULL)区别
- smarty 常用参数
- 分享到QQ空间、新浪微博、腾讯微博的代码!
- debian系统下安装ssh服务
- Latch-up 閂鎖效應 &; 靜電放電模式
- 在win7与XP系统下 C#缺省路径不同
- 字符串转换为float<;2>;
- tyvj1297 小气的小B
- 修改Fedora 20 启动项
- 《Algorithms 4th Edition》读书笔记——2.4 优先队列(priority queue)-Ⅵ