取模运算性质
前言
取模运算(C++中用符号%
表示)是求两个数相除的余数。其概念与取余操作类似,又不完全相同。
一.运算定义
假设有整数a,b,在C++中,对于a%b:
1.取a,b绝对值进行运算取余。
2.运算结果符号与a相同。
二.基本性质
作为一种运算,与加减乘除类似,也有交换律,结合律,分配律。
1.交换律
2.结合律
3.分配率
比较坑的就是当移入到括号以内后,外部的仍然需要保留。
三.应用
求解
快速幂的代码如下
int a, b, p;
cin >> a >> b >> p;
int res = 1 % p;
while (b) {
if (b & 1) res = (long long)res * a % p;
a = (long long)a * a % p;
b >>= 1;
}
cout << res << endl;
我们由快速幂的计算原理,可知可拆成的迭代形式来计算。
根据以上的加法分配率,,则可以改写成,因此在快速幂的代码中可以用a = (long long)a * a % p;
和res = (long long)res * a % p;
进行表示。
四. 后记
因为在做题时因为概念理解不透彻,备受折磨,因此进行整理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具