加载中…
个人资料
abentu
abentu
  • 博客等级:
  • 博客积分:0
  • 博客访问:15,882
  • 关注人气:4
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

poj1006-Biorhythms

(2010-08-07 14:01:03)
标签:

杂谈

    这道题不需要剩余定理去写,只要把三个周期里面,选一个枚举日期即可。注意一些特殊情况,我在discuss里面看到的,就是最大的周期是21252,所以答案应该在1~21252之间。

    水过~~

 

代码:

 

#include "stdio.h"
const int a1 = 23,a2 = 28,a3 = 33;

int p,e,i,d,cases,xx,day;

int main()
{
    freopen("3.txt","r",stdin);
    freopen("4.txt","w",stdout);
   
    cases = 0;
    while (scanf("%d%d%d%d",&p,&e,&i,&d) != EOF && p+e+i+d != -4)
    {
          cases ++;
          day = d + 1;
          while ((day - p) % a1 != 0)
                day ++;
          for (xx = 0;xx <= a2 * a3;xx ++)
          {
              day += a1;
              if ((day - e) % a2 == 0 && (day - i) % a3 == 0)
                       break;     
          }
         
          day = day - d;
          if (day > 21252)
             day -= 21252;
          printf("Case %d: the next triple peak occurs in %d days.\n",cases,day);
    }
   
    return 0;
}
             
             

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有