coder • 1年前
int isR(int y) {
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
return 1;
} else {
return 0;
}
} // int main(){
int t[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
char modd[11] = {1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2};
int n;
scanf("%d",&n);
char a[n][19];
for (int i = 0; i < n; ++i) {
for (int j = 0; j < 18; ++j) {
a[i][j]='0';
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j <= 18; ++j) {
scanf("%c",&a[i][j]);
}
}
int sum = 0;
int x = 0;
for (int i = 0; i < n; ++i) {
int year = (a[i][7]-'0')*1000 + (a[i][8]-'0')*100 + (a[i][9]-'0')*10 + (a[i][10] - '0');
// printf("%d ",year);
int m = (a[i][11]-'0')*10 + (a[i][12] - '0');
// printf("%d ",m);
int d = (a[i][13]-'0')*10 + a[i][14] - '0';
// printf("%d",d);
for (int j = 1; j <= 18; ++j) {
int b = a[i][j] - '0';
sum += b * t[x++];
if (year < 1980 || year > 2006) {
printf("Y\n");
sum = 0;
break;
}
if(m<1||m>12){
printf("M\n");
sum = 0;
break;
}
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
if(d>31){
printf("D\n");
sum = 0;
break;
}
}
if(m==4||m==6||m==9||m==11){
if(d>30){
printf("D\n");
sum = 0;
break;
}
}
int isRN = isR(year);
if (isRN == 0) {
if ( d> 28 && m ==2) {
printf("D\n");
sum = 0;
break;
}
} else if(isRN == 1){
if ( d> 29 && m ==2) {
printf("D\n");
sum = 0;
break;
}
}
if(j == 18){
int mod = sum%11;
// printf("%d %d\n",sum,mod); // printf("%c ",a[i][j]); // printf("%d ",mod);
if(modd[mod-1]==a[i][j]){
printf("T");
sum = 0;
break;
} else{
printf("%d %d\n",sum,mod);
printf("%c ",a[i][j]);
printf("%d ",mod);
a[i][j]=modd[mod-1]+'0';
for (int k = 1; k < 19; ++k) {
printf("%c",a[i][k]);
}
b = 0;
}
}
}
}
return 0;
}
评论:
请先登录,才能进行评论