汤姆大人我的神 • 13天前
using namespace std;
int s[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
char mod[11] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
void judge(string &a, int mod1) {
if (a[17] == mod[mod1])
cout << 'T' << endl;
else {
a[17] = mod[mod1];
cout << a << endl;
}
}
int main() {
int n;
cin >> n;
string a;
for (int i = 0; i < n; i++) {
cin >> a;
int sum = 0;
for (int j = 0; j < 17; j++)
sum += (a[j] - '0') * s[j];
int year = 0;
for (int j = 6; j <= 9; j++)
year = year * 10 + (a[j] - '0');
int m = (a[10] - '0') * 10 + (a[11] - '0');
int d = (a[12] - '0') * 10 + (a[13] - '0');
bool falge = false;
int mod1 = sum % 11;
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
falge = true;
if (year >= 1980 && year <= 2006) {
if (m >= 1 && m <= 12) {
if (falge && m == 2) {
if (d >= 1 && d <= 29)
judge(a, mod1);
else
cout << 'D' << endl;
} else {
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {//31天
if (d >= 1 && d <= 31)
judge(a, mod1);
else
cout << "D" << endl;
} else if (m == 4 || m == 6 || m == 9 || m == 11) {
if (d >= 1 && d <= 30)
judge(a, mod1);
else
cout << "D" << endl;
} else if (m == 2) {
if (d >= 1 && d <= 28)
judge(a, mod1);
else
cout << "D" << endl;
}
}
} else
cout << 'M' << endl;
} else
cout << 'Y' << endl;
}
return 0;
}
评论:
请先登录,才能进行评论