题目:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=34
思路:最近正好学了一点孙子定理。。。
代码:
#include <bits/stdc++.h> int main() { int a,b,c; scanf("%d %d %d", &a, &b, &c); int x = (a*70 + b*21 + c*15)%105; if (x > 10 && x < 100) printf("%d\n", x); else printf("No answer\n"); return 0; }
下篇文章中再详细谈谈孙子定理,这里给出主要公式:
对于如下同余方程组
$$ \left\{\begin{aligned} x &= a_1 (mod \quad m_1) \\ x &= a_2 (mod \quad m_2) \\ & \cdot \cdot \cdot \\ x &= a_n (mod \quad m_n) \end{aligned} \right. $$
当且仅当mi两两互质时x有唯一解,且有如下公式:
$$ x = \begin{pmatrix} \sum a_i t_i M_i \end{pmatrix} mod M $$
$$ 其中M = \prod m_i,M_i = \frac{M}{m_i},t_i为M_i的逆元,a_i为余数 $$