文章

84

粉丝

2

获赞

567

访问

22.6k

头像
身份证校验 题解:
P1722 北京理工大学机试题
发布于2026年1月30日 14:57
阅读数 316

#include<iostream>

using namespace std;

int y[11] = {1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2};
int power[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};

int main() {
	
	string s;
	while (cin >> s) {
		if (s.size() != 18) {
			cout << "ID Wrong" << endl;
			continue;
		}
		int sum = 0;
		for (int i = 0; i < s.size() - 1; i ++) {
			sum += power[i] * (s[i] - '0');
		}
		if (s[s.size() - 1] == 'X' && sum % 11 == 2) {
			cout << "ID Corrent" << endl;
		} else {
			int last = s[s.size() - 1] - '0';
			if (y[sum % 11] == last) {
				cout << "ID Corrent" << endl;
			} else {
				cout << "ID Wrong" << endl;
			}
		}
		
	}

	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发