注意:50分 -- u=10,最后一位为'X'
代码:
#include <bits/stdc++.h> using namespace std; string s; int a[12]; int main() { cin >> s; a[1] = s[0] - '0'; a[2] = s[2] - '0'; a[3] = s[3] - '0'; a[4] = s[4] - '0'; a[5] = s[6] - '0'; a[6] = s[7] - '0'; a[7] = s[8] - '0'; a[8] = s[9] - '0'; a[9] = s[10] - '0'; long long int u = 0; for (int i = 1; i <= 9; i++) { u = (u + a[i] * i) % 11; } if ((u == s[12] - '0') || (u == 10 && s[12] == 'X')) { cout << "Right"; } else { if (u != 10) { cout << a[1] << "-" << a[2] << a[3] << a[4] << "-" << a[5] << a[6] << a[7] << a[8] << a[9] << "-" << u; } else { cout << a[1] << "-" << a[2] << a[3] << a[4] << "-" << a[5] << a[6] << a[7] << a[8] << a[9] << "-" << 'X'; } } }