題目大意
給定一組身分證號碼,問是否是正常的號碼?
題解
將各個字母對應到的數字建表後按照題目要求模擬即可。以下的程式碼中使用了 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 留言