11111

coder  •  1年前


include <stdio.h>

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;

}


评论:

请先登录,才能进行评论