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

3.思路:

枚举法

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

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

4.代码:

 #include <iostream>
#include <cstdio> using namespace std; int main()
{
int p,e,i,d;
int j;
int k = ;
while(cin>>p>>e>>i>>d)
{
if(p == - && e == - && i == - && d == -) break;
j = (d + - p) / * + p;
if(j < d + ) j += ;
//for(j = d + 1; j < 21252; j++) if((j - p) % 23 == 0) break;
for(;j < ;j += ) if((j - e) % == ) break;
for(;j < ;j += * ) if((j - i) % == ) break;
cout<<"Case "<<(++k)<<": the next triple peak occurs in "<<(j - d)<<" days."<<endl;
}
return ;
}

Poj 1006 / OpenJudge 2977 1006 Biorhythms/生理周期的更多相关文章

  1. 中国剩余定理算法详解 + POJ 1006 Biorhythms 生理周期

    转载请注明出处:http://exp-blog.com/2018/06/24/pid-1054/ #include <iostream> #include <cstdio> u ...

  2. POJ 1006 生理周期(中国剩余定理)

    POJ 1006 生理周期 分析:中国剩余定理(注意结果要大于d即可) 代码: #include<iostream> #include<cstdio> using namesp ...

  3. 生理周期,POJ(1006)

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

  4. POJ 1006 生理周期【数论】

    这题是有中文版的(右上角选项卡里把default改成简体中文)然后看到他把biorhythms翻成生理周期我可耻的笑了......23333 如果没有限定从日期d开始,完全可以从第一天起开始计时,因此 ...

  5. [POJ 1006]生理周期

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

  6. 生理周期POJ 1006

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 138101   Accepted: 44225 Description 人生 ...

  7. poj——1006 生理周期

    生理周期 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 138291   Accepted: 44300 Descripti ...

  8. OpenJudge - 2977:生理周期

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

  9. 生理周期[PKU1006]

    生理周期 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 132195   Accepted: 42171 Descripti ...

随机推荐

  1. .NET加密配置文件connectionStrings节点

    具体的可以参考petshop源码程序. 加密前: <connectionStrings> <add name="SQLProfileConnString" con ...

  2. Windows Phone开发工具初体验【转载】

    Windows Phone开发工具在MIX 2010上火热登场了.Windows Mobile开发者们压抑许久的热情终于爆发出来,对于Windows Phone的华丽转身,开发者们褒贬不一,有人对Si ...

  3. zoj 3820 Building Fire Stations 树的中心

    Building Fire Stations Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge ...

  4. Rational Rose--简介

    Rational Rose Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具.用于可视化建模和公司级水平软件应用的组件构造. 目前版本的Rational ...

  5. SHGetSpecialFolderLocation

    uses shlobj;function GetDesktopFolder():string;var  pItem: PItemIDList;  temp: array[0..MAX_PATH] of ...

  6. Android端如何获取手机当前的网络状态,比如wifi还是3G, 还是2G, 电信还是联通,还是移动

    不多说了,直接看代码, NB人会懂的! package com.example.vdisktest; import android.app.Activity; import android.conte ...

  7. [Effective C++ --015]在资源管理类中提供对原始资源的访问

    引言 资源管理类是防止资源泄漏的有力武器,但是许多APIs直接指涉资源,除非你发誓永不使用这样的APIs,否则只得绕过资源管理对象(resource-managing objects)直接访问原始资源 ...

  8. 两个字符串,若为数字则都相加,若有一个不为数字则,输出error

    import java.util.*; /*请设计一个算法能够完成两个用字符串存储的整数进行相加操作,对非法输入则返回“error”: * 用例:123 234 * 输出:357 * 用例123 as ...

  9. 使用webView制作浏览器

    xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...

  10. mysql修改主键

    先删除所有主键 alter table tableName drop primary key; 然后添加主键 alter table tableName primary key(id);//如果是联合 ...