Biorhythms POJ - 1006 中国剩余定理

Posted ttttttttrx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Biorhythms POJ - 1006 中国剩余定理相关的知识,希望对你有一定的参考价值。

定理证明:https://blog.csdn.net/d_x_d/article/details/48466957

https://blog.csdn.net/lyy289065406/article/details/6648551

关键思路在于构造一个每部分膜另外一个不包含在部分内的部分的余数是1  然后把各部分分别乘以对应的余数 

其中题目给出的第一天天数  就是  (n+d)%xn 的余数 不用处理 

 

 

 1  
 2 #include<iostream>
 3 using namespace std;
 4  
 5 int main(void)
 6 {
 7     int p,e,i,d;
 8     int time=1;
 9     while(cin>>p>>e>>i>>d)
10     {
11         if(p==-1 && e==-1 && i==-1 && d==-1)
12             break;
13  
14         int lcm=21252;  // lcm(23,28,33)
15         //找到分别余1的x1*x2*k的k然后乘以余数
16         //x1*x2*k%x3
17         int n=(5544*p+14421*e+1288*i-d+21252)%21252;
18         if(n==0)
19             n=21252;
20         cout<<"Case "<<time++<<": the next triple peak occurs in "<<n<<" days."<<endl;
21     }
22     return 0;
23 }

 

以上是关于Biorhythms POJ - 1006 中国剩余定理的主要内容,如果未能解决你的问题,请参考以下文章

POJ1006Biorhythms——中国剩余定理

Java-POJ1006-Biorhythms(中国剩余定理)

Biorhythms POJ - 1006 中国剩余定理

POJ 1006 Biorhythms | 中国剩余定理

Biorhythms POJ 1006(中国剩余定理)

poj 1006Biorhythms(数论--中国剩余定理 模版题){附中国剩余定理 }