把从当年第1天开始数,第几天的天数叫做“日期”。
以体力高峰为例,p是从当年第1天开始体力高峰出现的日期,体力周期是23天,那么体力高峰日期为
p
+
23
∗
k
p+23*k
p+23∗k(k是自然数),反过来,一个日期x如果是体力高峰,那么一定有x-p能够整除23,即(x-p)%23 == 0
。
同理:
e是感情高峰第一次出现的日期,感情周期是28天,感情高峰日期为
e
+
28
k
e+28k
e+28k(k是自然数)。一个日期x如果是感情高峰,一定有(x-e)%28 == 0
。
i是智力高峰第一次出现的日期,智力周期是33天,智力高峰日期为
i
+
33
k
i+33k
i+33k(k是自然数)。一个日期x如果是智力高峰,一定有(x-i)%33 == 0
。
(x-p)%23 == 0
,(x-e)%28 == 0
,(x-i)%33 == 0
题目要求输出的是距离给定时间的天数,如果满足条件,则输出x-d,结束程序。
#include
using namespace std;
int main()
{
int p, e, i, d;
cin >> p >> e >> i >> d;
for(int x = d+1; x <= d+21252; ++x)
{
if((x-p)%23 == 0 && (x-e)%28 == 0 && (x-i)%33 == 0)
{
cout << x-d;
return 0;
}
}
return 0;
}