问题标题: 酷町堂:天哪!!谁再一次来救救我!!

0
0
已解决
龙舟
龙舟
高级光能
高级光能

3876   生理高峰经验值:0

题目描述 Description

人生来就有三个生理周期,分别为体力、感情和智力周期,对于每种生理周期,都有其高峰的日子,在高峰这天,人会在相应的方面表现出色。对于这三种生理周期,它们分别每隔23天、28天和33天出现一次。现在给定三个高峰出现的日子p,e,i,再给定另一个日子d,计算出d之后三个高峰在同一天出现的日子(用距离d的天数作为输出)。
例如,给定d为10,三个高峰出现同一天为12,则输出为2。

输入描述 Input Description

输入数据有多组,每次输入四个整数:p,e, i和d,其中 p,e,i分别表示体力、情感和智力高峰出现的时间(时间从当年的第一天开始计算)。d 是给定的时间,可能小于p、 e 或 i。

当p = e = i = d = -1时,输入数据结束。

输出描述 Output Description

从给定时间起,下一次三个高峰同天的时间(距离给定时间的天数)。

样例输入 Sample Input

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

样例输出 Sample Output

19575 16994 8910 10789

数据范围及提示 Data Size & Hint

所有给定时间是非负的并且小于365, 所求的时间小于21252。


0
已采纳
徐子玄
徐子玄
初级光能
初级光能

这题简单至极!枚举!

核心:

while(cin>>p>>e>>i>>d&&p!=-1&&e!=-1&&i!=-1&&d!=-1){

        int j;

        p=p%23;

        e=e%28;

        i=i%33;

        for(j=p+23;j>=0;j=j+23){

                if((j-e)%28==0){

                        if((j-i)%33==0)

                                    break;

                }

        }

        cout<<j-d<<endl;

        n++;

}

望采纳

我要回答