1.链接地址:

http://poj.org/problem?id=1006

http://bailian.openjudge.cn/practice/2977

2.题目:

Biorhythms
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 107909   Accepted: 33478

Description

Some people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the physical, emotional, and intellectual cycles, and they have periods of lengths 23, 28, and 33 days, respectively. There is one peak in each period of a cycle. At the peak of a cycle, a person performs at his or her best in the corresponding field (physical, emotional or mental). For example, if it is the mental curve, thought processes will be sharper and concentration will be easier.
Since the three cycles have different periods, the peaks of the three cycles generally occur at different times. We would like to determine when a triple peak occurs (the peaks of all three cycles occur in the same day) for any person. For each cycle, you will be given the number of days from the beginning of the current year at which one of its peaks (not necessarily the first) occurs. You will also be given a date expressed as the number of days from the beginning of the current year. You task is to determine the number of days from the given date to the next triple peak. The given date is not counted. For example, if the given date is 10 and the next triple peak occurs on day 12, the answer is 2, not 3. If a triple peak occurs on the given date, you should give the number of days to the next occurrence of a triple peak.

Input

You will be given a number of cases. The input for each case consists of one line of four integers p, e, i, and d. The values p, e, and i are the number of days from the beginning of the current year at which the physical, emotional, and intellectual cycles peak, respectively. The value d is the given date and may be smaller than any of p, e, or i. All values are non-negative and at most 365, and you may assume that a triple peak will occur within 21252 days of the given date. The end of input is indicated by a line in which p = e = i = d = -1.

Output

For each test case, print the case number followed by a message indicating the number of days to the next triple peak, in the form:

Case 1: the next triple peak occurs in 1234 days.

Use the plural form ``days'' even if the answer is 1.

Sample Input

0 0 0 0
0 0 0 100
5 20 34 325
4 5 6 7
283 102 23 320
203 301 203 40
-1 -1 -1 -1

Sample Output

Case 1: the next triple peak occurs in 21252 days.
Case 2: the next triple peak occurs in 21152 days.
Case 3: the next triple peak occurs in 19575 days.
Case 4: the next triple peak occurs in 16994 days.
Case 5: the next triple peak occurs in 8910 days.
Case 6: the next triple peak occurs in 10789 days.

Source

East Central North America 1999

3.思路:

枚举法

首先确定第一个周期的第一个符合条件的数,开始按第一个周期递增,寻找符合第二个周期的数

再按第一个周期×第二个周期的值递增,寻找符合第三个周期的数,即为所求值

4.代码:

 1 #include <iostream>
 2 #include <cstdio>
 3
 4 using namespace std;
 5
 6 int main()
 7 {
 8     int p,e,i,d;
 9     int j;
10     int k = 0;
11     while(cin>>p>>e>>i>>d)
12     {
13         if(p == -1 && e == -1 && i == -1 && d == -1) break;
14         j = (d + 1 - p) / 23 * 23 + p;
15         if(j < d + 1) j += 23;
16         //for(j = d + 1; j < 21252; j++) if((j - p) % 23 == 0) break;
17         for(;j < 21252;j += 23) if((j - e) % 28 == 0) break;
18         for(;j < 21252;j += 23 * 28) if((j - i) % 33 == 0) break;
19         cout<<"Case "<<(++k)<<": the next triple peak occurs in "<<(j - d)<<" days."<<endl;
20     }
21     return 0;
22 }

转载于:https://www.cnblogs.com/mobileliker/p/3546507.html

Poj 1006 / OpenJudge 2977 1006 Biorhythms/生理周期相关推荐

  1. PKU ACM 1006 生理周期

    题目链接:Biorhythms 生理周期 Description 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会 ...

  2. 生理周期,POJ(1006)

    题目链接:http://poj.org/problem?id=1006 解题报告: 1.枚举天数的时候可以根据前面的结果直接跳过一些错误的答案. ///三个周期是23,28,33, #include ...

  3. poj 1006 生理周期

    题目链接:http://poj.org/problem?id=1006 题意:中文题. 中国剩余定理: 1 #include <cstdio> 2 #include <cmath&g ...

  4. POJ 2977 生理周期 解题报告

    2977 : 生理周期 总时间限制: 1000ms 内存限制: 65536kB 描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高 ...

  5. 120 - 算法 - 枚举 周期性跳转 openjudge:4148生理周期

    #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> using namespace st ...

  6. POJ:1006--BIORHYTHM(生理周期计算)

    原题如下: Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 110700   Accepted: 344 ...

  7. 2977 生理周期(简单的枚举例子)

    描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精 ...

  8. OpenJ_Bailian - 2977 生理周期 【枚举】

    题目链接:https://cn.vjudge.net/problem/OpenJ_Bailian-2977 题目描述: 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28 ...

  9. 2977:生理周期(枚举)

    总时间限制: 1000ms 内存限制:  65536kB 描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在 ...

最新文章

  1. 固定表头和首行_Excel一步制作斜线表头!还有这些高分Excel表头技巧,看完秒会...
  2. R语言多因素方差分析及评估假设检验
  3. [译] RxJS: 避免 takeUntil 造成的泄露风险
  4. Javascript的匿名函数与自执行
  5. 160个Crackme011
  6. 4:springApplication.run 原理
  7. ORA-01031 权限不足-过程中DBA 角色用户无法执行DDL
  8. CentOS配置本地YUM源
  9. android 自定义View 的详细介绍
  10. 英国科研学术网络Janet遭遇DDoS攻击
  11. Django搭建个人博客:改写View视图
  12. linux的pending状态怎么退出,状态显示Pending Contract
  13. 泛微OA数据库表说明
  14. 研发团队管理实践总结
  15. 微信整人假红包图片_微信整人红包动态图如何制作 微信红包图片显示5秒后变成恶搞图或其它文字制作方法...
  16. 刷B站学数分Day1|如何写出一份合格的数据分析师简历
  17. 难为知己,难为敌-职场之我见
  18. HTML5基本元素使用
  19. 【无人机】【2012.09】将无人驾驶飞机系统融入城市环境中的现代警务研究
  20. 开篇词:大厂技术面试“潜规则”

热门文章

  1. CNN推理哪家强?英伟达/英特尔/骁龙/麒麟/ActionSemi大测评
  2. 一个模型搞定十大自然语言任务:NLP全能选手来了 | 论文+代码
  3. 小姐姐の福音!美图旗下美妆相机推出AI新功能“发型管家”
  4. AlphaZero完胜三大世界冠军棋类程序:5000个TPU、自学一天
  5. Flutter:手拉手带你极速构建漂亮的跨平台(iOS/Android)移动应用 ✿ 初识
  6. 使用代码形式配置Log4J日志框架
  7. Javascript下拉刷新
  8. NSMapTable、NSHashTable与NSPointerArray的封装
  9. linux下休眠/待机命令
  10. LINQ简记(3):子句