人品爆发,情商体力智商三高峰同时出现!
体力,情商,智商三个高峰出现的日子分别为p,e,i,给定一个指定的日子d,任务是输出d之后,下一次三高峰出现在同一天的日子(用距离d的天数表示)。
用枚举,当然也不可以傻傻的真的一个一个试,得跳着试。体力,情商,智商分别每隔23,28,33天出现一次。
#include<iostream>
#include<cstdio>
using namespace std;
#define N 21252//输出不可以超过该值
int main(){
int p,e,i,d;
while(cin>> p>> e>> i>> d && p!=-1){
int k;
for(k=d+1; (k-p)%23 ; ++k);//找到下一个体力高峰出现的日子
for( ; (k-e)%28 ; k+=23);//找到体力和情商同时高峰的日子
for( ; (k-i)%33 ; k+=23*28);//找到三高峰
cout<< "the next triple peak occurs in "<< k-d << endl;
}
return 0;
}