#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
string calculateCheckCode(string idNumber) {
    // 加权因子
    int weights[] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 0};
    // 校验码映射表
    char checkCodes[] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
    // 计算加权和
    int weightedSum = 0;
    for (int i = 0; i < 17; ++i) {
        weightedSum += (idNumber[i] - '0') * weights[i];
    }
    // 计算余数并获取校验码
    int remainder = weightedSum % 11;
	idNumber[17]=checkCodes[remainder];
	return idNumber;
}
int main() {
    cout<<"输入你的id,判断合法写法:";
    string id;
    cin>>id;
    if(id.length()!=18){
		cout<<" 你这id位数不对，";
		cout<<"5秒后关闭";
		Sleep(5000);
		return 0;
	}
    if(calculateCheckCode(id)==id){
    	cout<<" 对 "; 
	}else{
		cout<<" 错 ，"<<calculateCheckCode(id);
	}
	cout<<" 5秒后关闭";
	Sleep(5000);
    return 0;
}
