求调代码
  • 板块学术版
  • 楼主Gumbo
  • 当前回复7
  • 已保存回复7
  • 发布时间2021/10/2 15:43
  • 上次更新2023/11/4 05:09:09
查看原帖
求调代码
478861
Gumbo楼主2021/10/2 15:43
#include<cstdio>
using namespace std;
int Y,M,D;
inline int read(void){
	register int ans=0;
	register char us=getchar();
	while(us<'0'||us>'9')us=getchar();
	while(us>='0'&&us<='9'){
		ans=(ans<<1)+(ans<<3)+(us^48);
		us=getchar();
	}
	return ans;
}
inline long long readl(void){
	long long ans=0;
	register char us=getchar();
	while(us<'0'||us>'9')us=getchar();
	while(us>='0'&&us<='9'){
		ans=(ans<<1)+(ans<<3)+(us^48);
		us=getchar();
	}
	return ans;
}
bool R(void){
	if((Y-1)%4==0)return true;
	return false;
}
bool R1(void){
	if(Y%4==0)return true;
	return false;
}
bool R2(void){
	if(Y%400==0||Y%4==0&&Y%100!=0)return true;
	return false;
}
long long r;
void julian(){
	if(r<=1721423){
		Y=4713-(r/1461*4);
		++r;
		r%=1461;
		if(r>=1&&r<367);
		if(r>=367&&r<732){
			r-=366;
			Y-=1;
		}
		if(r>=732&&r<1097){
			r-=731;
			Y-=2;
		}
		if(r>=1097){
			r-=1096;
			Y-=3;
		}
/**/	if(!R()){
			if(r>=1&&r<32){
				M=1;
				D=r;
			}
			if(r>=32&&r<60){
				M=2;
				D=r-31;
			}
			if(r>=60&&r<91){
				M=3;
				D=r-59;
			}
			if(r>=91&&r<121){
				M=4;
				D=r-90;
			}
			if(r>=121&&r<152){
				M=5;
				D=r-120;
			}
			if(r>=152&&r<182){
				M=6;
				D=r-151;
			}
			if(r>=182&&r<213){
				M=7;
				D=r-181;
			}
			if(r>=213&&r<244){
				M=8;
				D=r-212;
			}
			if(r>=244&&r<274){
				M=9;
				D=r-243;
			}
			if(r>=274&&r<305){
				M=10;
				D=r-273;
			}
			if(r>=305&&r<335){
				M=11;
				D=r-304;
			}
			if(r>=335&&r<366){
				M=12;
				D=r-334;
			}
		}
		else{
			if(r>=1&&r<32){
				M=1;
				D=r;
			}
			if(r>=32&&r<61){
				M=2;
				D=r-31;
			}
			if(r>=61&&r<92){
				M=3;
				D=r-60;
			}
			if(r>=92&&r<122){
				M=4;
				D=r-91;
			}
			if(r>=122&&r<153){
				M=5;
				D=r-121;
			}
			if(r>=153&&r<183){
				M=6;
				D=r-152;
			}
			if(r>=183&&r<214){
				M=7;
				D=r-182;
			}
			if(r>=214&&r<245){
				M=8;
				D=r-213;
			}
			if(r>=245&&r<275){
				M=9;
				D=r-244;
			}
			if(r>=275&&r<306){
				M=10;
				D=r-274;
			}
			if(r>=306&&r<336){
				M=11;
				D=r-305;
			}
			if(r>=336&&r<367){
				M=12;
				D=r-335;
			}
		}
		printf("%d %d %d BC\n",D,M,Y);
	}
	else {
		r-=1721423;
		if(r<=577737){
			Y=(r/1461*4);
			r%=1461;
			if(r>=1&&r<366)Y+=1;
			if(r>=366&&r<731){
				r-=365;
				Y+=2;
			}
			if(r>=731&&r<1096){
				r-=730;
				Y+=3;
			}
			if(r>=1096){
				r-=1095;
				Y+=4;
			}
			if(!R1()){
				if(r>=1&&r<32){
					M=1;
					D=r;
				}
				if(r>=32&&r<60){
					M=2;
					D=r-31;
				}
				if(r>=60&&r<91){
					M=3;
					D=r-59;
				}
				if(r>=91&&r<121){
					M=4;
					D=r-90;
				}
				if(r>=121&&r<152){
					M=5;
					D=r-120;
				}
				if(r>=152&&r<182){
					M=6;
					D=r-151;
				}
				if(r>=182&&r<213){
					M=7;
					D=r-181;
				}
				if(r>=213&&r<244){
					M=8;
					D=r-212;
				}
				if(r>=244&&r<274){
					M=9;
					D=r-243;
				}
				if(r>=274&&r<305){
					M=10;
					D=r-273;
				}
				if(r>=305&&r<335){
					M=11;
					D=r-304;
				}
				if(r>=335&&r<366){
					M=12;
					D=r-334;
				}
			}
			else{
				if(r>=1&&r<32){
					M=1;
					D=r;
				}
				if(r>=32&&r<61){
					M=2;
					D=r-31;
				}
				if(r>=61&&r<92){
					M=3;
					D=r-60;
				}
				if(r>=92&&r<122){
					M=4;
					D=r-91;
				}
				if(r>=122&&r<153){
					M=5;
					D=r-121;
				}
				if(r>=153&&r<183){
					M=6;
					D=r-152;
				}
				if(r>=183&&r<214){
					M=7;
					D=r-182;
				}
				if(r>=214&&r<245){
					M=8;
					D=r-213;
				}
				if(r>=245&&r<275){
					M=9;
					D=r-244;
				}
				if(r>=275&&r<306){
					M=10;
					D=r-274;
				}
				if(r>=306&&r<336){
					M=11;
					D=r-305;
				}
				if(r>=336&&r<367){
					M=12;
					D=r-335;
				}
			}
		}
		else{
			r-=577737;
			r+=277;
			Y=1582+(r/146097*400);
			r%=146097;
			Y+=(r/36524*100);
			r%=36524;
			Y+=(r/1461*4);
			r%=1461;
			--Y;
			if(r>=1&&r<366)Y+=1;
			if(r>=366&&r<731){
				r-=365;
				Y+=2;
			}
			if(r>=731&&r<1096){
				r-=730;
				Y+=3;
			}
			if(r>=1096){
				r-=1095;
				Y+=4;
			}
			if(!R2()){
				if(r>=1&&r<32){
					M=1;
					D=r;
				}
				if(r>=32&&r<60){
					M=2;
					D=r-31;
				}
				if(r>=60&&r<91){
					M=3;
					D=r-59;
				}
				if(r>=91&&r<121){
					M=4;
					D=r-90;
				}
				if(r>=121&&r<152){
					M=5;
					D=r-120;
				}
				if(r>=152&&r<182){
					M=6;
					D=r-151;
				}
				if(r>=182&&r<213){
					M=7;
					D=r-181;
				}
				if(r>=213&&r<244){
					M=8;
					D=r-212;
				}
				if(r>=244&&r<274){
					M=9;
					D=r-243;
				}
				if(r>=274&&r<305){
					M=10;
					D=r-273;
				}
				if(r>=305&&r<335){
					M=11;
					D=r-304;
				}
				if(r>=335&&r<366){
					M=12;
					D=r-334;
				}
			}
			else{
				if(r>=1&&r<32){
					M=1;
					D=r;
				}
				if(r>=32&&r<61){
					M=2;
					D=r-31;
				}
				if(r>=61&&r<92){
					M=3;
					D=r-60;
				}
				if(r>=92&&r<122){
					M=4;
					D=r-91;
				}
				if(r>=122&&r<153){
					M=5;
					D=r-121;
				}
				if(r>=153&&r<183){
					M=6;
					D=r-152;
				}
				if(r>=183&&r<214){
					M=7;
					D=r-182;
				}
				if(r>=214&&r<245){
					M=8;
					D=r-213;
				}
				if(r>=245&&r<275){
					M=9;
					D=r-244;
				}
				if(r>=275&&r<306){
					M=10;
					D=r-274;
				}
				if(r>=306&&r<336){
					M=11;
					D=r-305;
				}
				if(r>=336&&r<367){
					M=12;
					D=r-335;
				}
			}
		}
		printf("%d %d %d\n",D,M,Y);
	}
}
int main(){
//	freopen("julian.in","r",stdin);freopen("julian.out","w",stdout);
	int Q;
	Q=read();
	register int i;
	for(i=0;i<Q;++i){
		r=readl();
		julian();
	}
}
2021/10/2 15:43
加载中...