P1289 身份證號碼驗證

2021-10-05 09:20:29 字數 1141 閱讀 7349

居民身份證是18位字元的編碼,每個人的編碼都是唯一的,校驗規則如下:

∑(ai*wi)mod 11 = 1

i表示號碼字元從左至右包括校驗碼字元在內的位置序號;ai表示第i位置上的號碼字元值;wi表示第i位置上的加權因子。即將各位上的數值乘上位權之和對11取餘,餘數為1則表示該編碼正確。注意:如果最後一位校驗碼是「x」或「x」,則代表該校驗碼的數值為10。

各位的權值依次是:7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1

例如某身份證號碼為:370683198901117657,這是正確的編碼。

又如某號碼為:470683198902117657,這是錯誤的編碼。

輸入格式

第一行是乙個數字n,表示後面有n行待判斷的號碼 從第二行起,每行乙個18位的字串,表示要判斷的身份證號碼

輸出格式

輸出乙個數值,表示正確的身份證號碼的個數

輸入樣例4

430321200506200105

430321200505070050

430302200512290036

43038120050824012x

輸出樣例

時間限制:1000 ms

記憶體限制:65535 kb

1≤n≤400

#include

//#include

#include

using

namespace std;

char n1[19]

;int

main()

;int s,t=0;

cin>>n;

//輸入待判斷的號碼行數

for(j=

1;j<=n;j++

) s+

=a[i]

*(n1[i]-48

);//求∑(ai*wi)}if

(s%11==1

)//判斷身份證號碼是否正確

t++;//計算正確號碼個數}

cout

}

身份證號碼驗證

說明 驗證身份證的有效性 引數 cid 身份證號碼 返回 地方 出生時間 性別 private string checkcidinfo string cid if cid.length 18 char c cid cid.length 1 bool last false if c 0 c 9 c a...

驗證身份證號碼

好久沒更新了,今天簽到啦。感覺這個驗證挺重要的,也挺常用的,所以分享給需要的朋友。驗證身份證號碼,在網上找到的好東東 function checkidcard idcard var idcard,y,jym var s,m var idcard array new array idcard arra...

驗證身份證號碼

var idcardnoutil powers 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 paritybit 1 0 x 9 8 7 6 5 4 3 2 genders checkaddresscode function addresscode test address...