1006 Biorhythms

貌似有O(1)数学解法,直接O(n)过了....有空再研究

  1. //4476569_AC_344MS_428K
  2. /**********************************************************************
  3. *       Online Judge   : POJ
  4. *       Problem Title  : Biorhythms
  5. *       ID             : 1006
  6. *       Date           : 12/11/2008
  7. *       Time           : 20:6:4
  8. *       Computer Name  : EVERLASTING-PC
  9. ***********************************************************************/
  10. #include<iostream>
  11. using namespace std;
  12. int p,e,i,d,ca;
  13. int main()
  14. {
  15.     //freopen("in_1006.txt","r",stdin);
  16.     ca=0;
  17.     while (cin>>p>>e>>i>>d)
  18.     {
  19.         if (p==-1&&e==-1&&i==-1&&d==-1)
  20.         {
  21.             break;
  22.         }
  23.         for (int k=d+1;;++k)
  24.         {
  25.             if ((k-p)%23==0&&(k-e)%28==0&&(k-i)%33==0)
  26.             {
  27.                 printf("Case %d: the next triple peak occurs in %d days./n",++ca,k-d);
  28.                 break;
  29.             }
  30.         }
  31.     }
  32.     return 0;
  33. }

你可能感兴趣的:(Date)