题目求同时出现三个生理周期的时间。
最优算法为:中国剩余定理。
代码:
#include<stdio.h>
int main()
{
int e,p,i,d,t=0,k;
while(scanf("%d %d %d %d",&p,&e,&i,&d)&&(p!=-1 ||e!=-1||i!=-1||d!=-1))
{
t++;
for(k=1;;k++)
if((k+d-p)/23*23+p-d==k && (k+d-e)/28*28+e-d==k && (k+d-i)/33*33+i-d==k)
break;
printf("Case %d: the next triple peak occurs in %d days./n",t,k);
}
return 0;
}
解题方法:直接模拟的。
AC TIME :297MS。