2011-11-27
同理小学生计算题?
还是我没想到什么?
#include <iostream>
using namespace std;
int getTriple(int, int, int, int);
int main ()
{
int iP;
int iE;
int iI;
int iD;
int iCount = 0;
while (cin >> iP >> iE >> iI >> iD)
{
iCount ++;
if (-1 == iP && -1 == iE && -1 == iI && -1 == iD)
{
break;
}
cout << "Case " << iCount << ": the next triple peak occurs in " << getTriple(iP, iE, iI, iD) << " days." << endl;
}
return 0;
}
int getTriple(int iP, int iE, int iI, int iD)
{
int iPeriodsP = 23;
int iPeriodsE = 28;
int iPeriodsI = 33;
int iCount = iD + 1;
while (1)
{
if ((iCount - iP) % iPeriodsP == 0)
{
if ((iCount - iE) % iPeriodsE == 0)
{
if ((iCount - iI) % iPeriodsI == 0)
{
return iCount - iD;
}
}
}
iCount ++;
}
}