CH0101 a^b & CH0102 64位整数乘法
2024-08-27 09:24:43
大数取模的两道题。
虐狗宝典学习笔记:
两个数值执行算术运算时,以参与运算的最高数值类型为基准,与保存结果的变量类型无关。两个32位整数的成绩可能超过int类型的表示范围,但是CPU只会用一个32位寄存器保存结果,造成越界,此时我们必须把其中一个数强制转换成64位整数类型long long参与运算。得到正确的结果,取模后,执行赋值操作时,该结果会被隐式转换成int存回。
CH0101---a^b
#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long LL; int power(int a, int b, int p)
{
int ans = % p;
while(b){
if(b & ) ans = (long long) ans * a % p;
a = (long long)a * a % p;
b >>= ;
}
return ans;
} int main()
{
int a, b, p;
scanf("%d%d%d", &a, &b, &p);
printf("%d\n", power(a, b, p));
return ;
}
CH0102---64位整数乘法
#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long LL; long long mul(long long a, long long b, long long p)
{
long long ans = ;
while(b){
if(b & ) ans = (ans + a) % p;
a = a * % p;
b >>= ;
}
return ans;
} int main()
{
LL a, b, p;
scanf("%lld%lld%lld", &a, &b, &p);
printf("%lld\n", mul(a, b, p));
return ;
}
最新文章
- jquery html属性和text属性的区别
- js实现鼠标点击input框后里面的内容就消失代码
- bzoj1803: Spoj1487 Query on a tree III
- String的成员方法的使用
- sip演示
- 利用COM组件IPicture读取jpg、gif、bmp图片文件数据和显示图片
- Redis + Jedis + Spring整合遇到的异常(转)
- C# 线程知识--使用Task执行异步操作
- WEB漏洞攻击之验证码绕过浅析
- Hadoop 发行版本 Hortonworks 安装详解(一) 准备工作
- Nginx 开启gzip 压缩,实现基于域名的虚拟主机。
- spark ML pipeline 学习
- C语言作业06--结构体&;文件
- OpenJ_Bailian 2814 拨钟问题
- plsql备份表---只是表---不包含表数据
- drf 生成接口文档
- 微信小程序开发——使用回调函数出现异常:TypeError: Cannot read property &#39;setData&#39; of undefined
- ELK之filebeat
- VS2012 扩展和更新里 插件状态 为禁用 的解决办法!
- 输入一个十进制的数到dx_ax,然后十六进制转十进制输出