水题,注意在一开始日期的遍历要从给的第四个输入开始,一开始因为这个WA了不少次
代码:
#include <iostream>
#include <algorithm>
#include <stack>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>
#include <cstdlib>
//23 28 33
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
int jishu = 1;
while(1)
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a==-1&&b==-1&&c==-1&&d==-1)
return 0;
// int count = 0;
// int minnumber = a;
// if(b<minnumber)
// {
// minnumber= b;
// }
// if(c<minnumber)
// {
// minnumber = c;
// }
for(int i=d+1;;i++)//这里的i为什么要从d开始 因为至少在这一天后边
{
if((i-a)%23==0&&(i-b)%28==0&&(i-c)%33==0)
{
if((i-d)!=21252)
printf("Case %d: the next triple peak occurs in %d days.\n",jishu,(i-d)%21252);
else
printf("Case %d: the next triple peak occurs in %d days.\n",jishu,21252);
jishu++;
break;
}
}
}
//i最终的输出值是一个天数,所以这个i的值肯定要大于d
//system("pause");
return 0;
}