【題解】Zerojudge a020 - 身分證檢驗

題目大意

給定一組身分證號碼,問是否是正常的號碼?

題解

將各個字母對應到的數字建表後按照題目要求模擬即可。以下的程式碼中使用了 std::to_string 將數字轉換成字串型態。實作時需要特別注意 ascii code 與數字之間的轉換。
#include <bits/stdc++.h>
using namespace std;

const int ID[] = {10, 11, 12, 13, 14, 15, 16, 17, 34, 18, 19, 20, 21, 22, 35, 23, 24, 25, 26, 27, 28, 29, 32, 30, 31, 33};

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	string s;
	cin >> s;
	string num = to_string(ID[s[0] - 'A']);
	int sum = num[0] - '0' + (num[1] - '0') * 9;
	for(int i = 1; i <= 8; i++) {
		sum += (s[i] - '0') * (9 - i);
	}
	sum += s[9] - '0';
	cout << (sum % 10 == 0 ? "real" : "fake") << "\n";
	return 0;
}

如果本文對您有幫助的話幫忙點擊廣告和分享吧!

© 若無特別註明,本站文章皆由 WeakMouse's Coding Blog 原創 ,轉載引用本文前請先留言告知。本文轉載請註明文章源自 WeakMouse's Coding Blog ,作者 ,並附上原文連結: 【題解】Zerojudge a020 - 身分證檢驗

張貼留言

0 留言