POJ 1006
需要注意两个地方:1.先取模得到各个周期第1次出现的天数。 2. X<=0时就继续加。
在网上搜了一下,有人说这是中国剩余定理,参考链接。
#include <stdio.h> int main(){ int p=0, e, i, d; int res[10000]; int k = 0; int X; while(scanf("%d %d %d %d", &p,&e,&i,&d), p!=-1){ int A, B, C; p %= 23; e %= 28; i %= 33; A = p - d; B = e - d; C = i - d; X = C; while(X<=0 ||(X-B)%28!=0 || (X-A)%23!=0){ X += 33; } res[k++] = X; } for(i=0;i<k;i++) printf("Case %d: the next triple peak occurs in %d days.\n",i+1,res[i]); }