POJ1006Biorhythms生理周期

对CRT(中国剩余定理)不了解可以参考这篇博客这个

一道中国剩余定理的裸题

代码

//By AcerMo
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
	int t=1,a,b,c,d,j,emm;
	int r1=33*28,r2=23*33,r3=23*28;emm=23*28*33;
	for (j=1;;j++) if (j*r1%23==1) break;r1*=j;
	for (j=1;;j++) if (j*r2%28==1) break;r2*=j;
	for (j=1;;j++) if (j*r3%33==1) break;r3*=j;
	while (~scanf("%d%d%d%d",&a,&b,&c,&d)&&a!=-1)
	{
		int ans=(r1*a+r2*b+r3*c-d)%emm;
		ans=(ans+emm-1)%emm+1;
		printf("Case %d: the next triple peak occurs in %d days.\n",t++,ans);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/acerandaker/article/details/80881139