PAT-B 1031 查驗身份證 【字串】
PAT-B 1031 查驗身份證
https://pintia.cn/problem-sets/994805260223102976/problems/994805290334011392
題目
一個合法的身份證號碼由17位地區、日期編號和順序編號加1位校驗碼組成。校驗碼的計算規則如下:首先對前17位數字加權求和,權重分配為:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然後將計算的和對11取模得到值Z
;最後按照以下關係對應Z
值與校驗碼M
的值:
Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2
現在給定一些身份證號碼,請你驗證校驗碼的有效性,並輸出有問題的號碼。
輸入
輸入第一行給出正整數N(≤100)是輸入的身份證號碼的個數。隨後N行,每行給出1個18位身份證號碼。
輸出
按照輸入的順序每行輸出1個有問題的身份證號碼。這裡並不檢驗前17位是否合理,只檢查前17位是否全為數字且最後1位校驗碼計算準確。如果所有號碼都正常,則輸出All passed
。
樣例輸入
4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X
樣例輸出
12010X198901011234
110108196711301866
37070419881216001X
分析
使用字串接收資料,然後簡單計算即可。
C++程式
#include<iostream>
#include<ctype.h>
#include<cstring>
#include<algorithm>
using namespace std;
char a[]={'1','0','X','9','8','7','6','5','4','3','2'};//對映關係
int power[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};//各位的權重
bool solve(string s)
{
int res=0;
for(int i=0;i<s.length()-1;i++)
if(isdigit(s[i]))
res+=(s[i]-'0')*power[i];
else
return false;//前17位不合法
res%=11;
return (s[s.length()-1]==a[res])?true:false;
}
int main()
{
int n;
string s;
cin>>n;
bool flag=false;
while(n--)
{
cin>>s;
if(!solve(s))
{
cout<<s<<endl;
flag=true;
}
}
if(!flag) cout<<"All passed"<<endl;
return 0;
}
相關文章
- 【PTA】查驗身份證
- 7-3 查驗身份證
- JavaScript身份證真偽查驗介面廠家有哪些?身份證查詢真偽JavaScript
- L1-016. 查驗身份證
- L1-016 查驗身份證 pythonPython
- 7-63 查驗身份證(15 分)
- 身份證如何查驗真偽?C#身份證二要素、三要素介面整合C#
- 身份證驗證工具類
- L1-016 查驗身份證 分數 15
- PHP 驗證身份證號碼PHP
- C++身份證號驗證C++
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- python - 驗證身份證合法性Python
- js正則驗證身份證號JS
- 中國身份證號驗證庫
- 用 python 製作全國身份證號驗證及查詢系統Python
- kafka SASL/PLAIN 身份驗證KafkaAI
- 客戶端身份驗證客戶端
- 舊香港身份證校驗
- asp.core 同時相容JWT身份驗證和Cookies 身份驗證兩種模式JWTCookie模式
- 身份證合法性校驗
- javascript身份證號碼校驗JavaScript
- SpringBoot整合JWT做身份驗證Spring BootJWT
- C++批次核驗身份證真偽、實名認證介面、身份證識別C++
- Rust中實現JWT身份驗證RustJWT
- 【仙山】flutter版谷歌身份驗證器Flutter谷歌
- 簡聊 Session 與 Token 身份驗證Session
- Javascript使用正則驗證身份證號(簡單)JavaScript
- js檢查身份證號是否正確JS
- win10 的windows身份驗證怎麼開啟_win10怎麼進行身份驗證Win10Windows
- win10系統驗證身份好麻煩怎麼去掉 win10取消身份驗證方法Win10
- gRPC(七)進階:自定義身份驗證RPC
- 什麼是自適應身份驗證?
- 一個簡單的身份證校驗
- 直播軟體搭建,姓名,身份證input驗證過濾
- JS驗證18位身份證號的正確性JS
- 身份驗證會影響使用者體驗嗎?
- 實時驗證碼技術可改進生物識別身份驗證