取模是什么
约 5 分钟
取模就是求余数,运算符是 %。 余 2,所以 ,写作 17 % 5。它只对整数用。
为什么数论题里到处是取模?因为很多计数题的答案会大得吓人(比如方案数有几百位),存不进 long long。题目于是要求"结果对某个数取模",通常是 或 这样的大质数,让你全程只保留余数,答案就永远在可控范围内。
const int MOD = 1e9 + 7;
long long ans = 1;
for (int i = 1; i <= n; i++)
ans = ans * i % MOD; // 边乘边取模,算 n! mod MOD
常见坑:% 的右操作数不能是 0;C++ 里负数取模结果可能是负的(),后面会讲怎么修正;取模不能随便用在除法上, 不等于 ,那要用逆元,属于更高级内容。
小纸条
17 对 5 取模是多少?
登录 后可看答案