题目:
http://poj.org/problem?id=1006&lang=default&change=true题意:
人的体力感情智力三周期分别为23,28,33天,给出这一年中三周期出现的三个时间,计算又给定时间到三周期全部最高峰的时间。思路:
因为有:(n+d)%23==p, (n+d)%28=e, (n+d)%33=i .
运用中国剩余定理有:
33*28*a%23==1 于是a=8,33*28*a==5544;
33*23*b%28==1 于是a=19,33*23*b==14421;
23*28*c%33==1 于是a=2,23*28*c==1288;
所以(5544×p+14421×e+1288×i)% lcm(23,28,33) =n+d 。
也就是n=(5544×p+14421×e+1288×i-d)%21252。
直接输出结果了,,
代码:
int main()
{
int i,j,k,kk,t,x,y,z;
kk=0;
while(scanf("%d%d%d%d",&x,&y,&z,&n)!=EOF&&n>=0)
{
res=x*5544+y*14421+z*1288+21252-n;
while(res>21252)res-=21252;
printf("Case %d: the next triple peak occurs in %d days.\n",++kk,res);
}
return 0;
}