爆零,找不到哪里错了,样例都过了
查看原帖
爆零,找不到哪里错了,样例都过了
98673
chino_33楼主2020/11/8 18:08
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
	int ping[14]={0,31,59,90,120,151,181,212,243,273,304,334,365,0};
	int run[14]={0,31,60,91,121,152,182,213,244,274,305,335,366,0};
	int Q;
	long long ri;
	cin>>Q;
	while(Q--)
	{
		cin>>ri;
		ri++;
		long long yy;
		if((ri+1)%1461!=0)
			yy=(ri+1)*4/1461;
		else
			yy=ri*4/1461;
		long long y=-4712+yy;
		ri-=yy*365+(yy/4+1);	
		if(y>1582 || (y==1582 && ri>=288))
		{
			ri+=10;
			if(y>=1700)
			{
				int bai=(y-1600)/100;
				ri+=bai-bai/4;
			}
		}
		int m=0;
		if(y%4==0)
		{
			ri++;
			while(ri-run[++m]>0);
				ri-=run[m-1];
		}		
		else
		{
			while(ri-ping[++m]>0);
				ri-=ping[m-1];
		}
		if(y>0)
			cout<<ri<<" "<<m<<" "<<y<<"\n";
		else
			cout<<ri<<" "<<m<<" "<<(y*-1)+1<<" BC\n";
	}
	return 0;
}
2020/11/8 18:08
加载中...