题目:人有体力、情商、智商的高峰日子,他们分别每隔23天,28天和33天出现一次,对于每个人,我们想知道何时三个高峰路在同一天。给定三个高峰出现的日子p,e,i(不一定是第一次高峰出现的日子),再给定另一个指定的日子d,你的任务是输出日子d之后,下一次三个高峰落在同一天的日子(用距离d的天数表示)。例如:给定日子为10,下次出现三个高峰,同一天的日子是12则输出2
#include <iostream>
using namespace std;
#define N 21252//用N来替代21252
int main()
{
int p, e, i, caseNum = 0;
int d;
int k;
while (cin >> p >> e >> i >> d && p != -1)
{
caseNum++;
for (k = d + 1; (k - p) % 23; k++);
for (; (k - e) % 28; k += 23);
for (; (k - i) % 33; k += 23 * 28);
cout << "Case " << caseNum << ": the next triple peak occurs in " << k - d << "days" << endl;
}
return 0;
}