社区讨论
改对必关!
P7075[CSP-S 2020] 儒略日参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mdbeosl4
- 此快照首次捕获于
- 2025/07/20 16:19 8 个月前
- 此快照最后确认于
- 2025/11/04 04:03 4 个月前
CPP
#include <bits/stdc++.h>
#define int long long
using namespace std;
//const int N=;
int T,a,b,c,day;
bool rn(int x){
if(x<0){
if(x%4==-1){
return 1;
}
return 0;
}else{
if(x<=1582){
if(x%4==0){
return 1;
}
return 0;
}else{
if(x%400==0){
return 1;
}
if(x%100==0)return 0;
return 1;
}
}
}
int yue(int x,int y){
if(y==1||y==3||y==5||y==7||y==8||y==10||y==12){
return 31;
}
if(y==4||y==6||y==9||y==11){
return 30;
}
if(rn(x))return 29;
return 28;
}
signed main(){
freopen("julian.in","r",stdin);
freopen("julian.out","w",stdout);
cin>>T;
while(T--){
a=-4713,b=1,c=1;
cin>>day;
int f=day/146097;
day%=146097;
while(day--){
if(a==1582&&b==10&&c==5){
c=15;
day--;
continue;
}
c+=1;
if(c>yue(a,b)){
b++;
if(b>12){
a++;
if(a==0){
a++;
}
b=1;
}
c=1;
}
}
a+=1ll*f*400;
if(a<0){
cout<<c<<" "<<b<<" "<<-a<<" BC"<<endl;
}else{
cout<<c<<" "<<b<<" "<<a<<endl;
}
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...