码迷,mamicode.com
首页 > 其他好文 > 详细

POJ1006

时间:2015-04-25 00:15:53      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

原题目链接

抽象题目:

  给定p,i,e以及对应的除数pp,ii,ee,求关于x的一元同余线性方程

这道题目可以直接模拟,即暴力枚举所有的x直到出现最小的x为止

代码如下

 1 #include<cstdio>
 2 using namespace std;
 3 const int pp=23,ee=28,ii=33;
 4 int p,e,i,d;
 5 int main()
 6 {
 7     int casetime=1;
 8     while(scanf("%d%d%d%d",&p,&e,&i,&d)==4&&p!=-1){
 9         p=p%pp; e=e%ee; i=i%ii;
10         for(int k=1;k<=21252;k++){
11             int date=d+k;
12             if( (((date-p)%pp)==0)&&(((date-e)%ee)==0)&&(((date-i)%ii)==0) ){
13                 printf("Case %d: the next triple peak occurs in %d days.\n",casetime++,k);
14                 break;
15             }
16         }
17     }
18     return 0;
19 }

 求解上述问题的时候出现了点小状况,因为变量i被使用了,但是在循环的时候我却依然用i作循环变量就出现了不可控错误。

当然这道题目一看到的时候就觉得应该可以用中国剩余定理解 作为 一元模线性方程组 加上 除数是那么的互质 肯定是可以这样做的。

不过现在还不会中国剩余定理,上网查了一些资料还是不太清楚。我打算先学点别的,等到把数论的基础打好了之后再入手CRT(Chinese Remaining Theory)当然不是这么拼写的~ 唉英语考成那么渣,我还是要好好背背单词,还有语法也弱爆了。

POJ1006

标签:

原文地址:http://www.cnblogs.com/happyJimmyLin/p/4454901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!