郵局帳號檢查規則 |
答題得分者是:vinchenkimo
|
darkside
一般會員 發表:15 回覆:42 積分:16 註冊:2002-03-11 發送簡訊給我 |
|
vinchenkimo
一般會員 發表:0 回覆:37 積分:17 註冊:2004-03-30 發送簡訊給我 |
郵局局號帳號檢查規則
局號及帳號皆為7碼數字末碼為檢查碼
前六碼數字加權分別為2,3,4,5,6,7
如前六碼數字為 n1,n2,n3,n4,n5,n6 , c1為檢查碼
c1=(n1*2+n2*3+n3*4+n4*5+n5*6+n6*7) mod 11
如果 c1=10 則 c1=0
c1 應與第七碼同
function CheckPostID(c:String):Boolean; var weight : array[1..6] of integer; iID :array[1..7] of integer; numCheck:integer; index:integer; i:integer; begin result:=True; if Length(c)<>7 then begin result:= false; exit; end; for i:=1 to strlen(pChar(c)) do begin if (c[i]>'9') or (c[i]<'0') then begin result:=false; exit; end else iID[i]:=strtoint(c[i]); end; for i:=1 to 6 do weight[i]:=i 1; numCheck := 0; for i:= 1 to 6 do begin numCheck := numCheck iID[i] * weight[i]; end; numCheck := numCheck mod 11; numCheck := 11 - numCheck; if numCheck > 9 then numCheck := numCheck - 10; if numCheck<>iID[7] then result:= False; end; |
vinchenkimo
一般會員 發表:0 回覆:37 積分:17 註冊:2004-03-30 發送簡訊給我 |
郵局局號帳號檢查規則
局號及帳號皆為7碼數字末碼為檢查碼
前六碼數字加權分別為2,3,4,5,6,7
如前六碼數字為 n1,n2,n3,n4,n5,n6 , c1為檢查碼
c1=(n1*2+n2*3+n3*4+n4*5+n5*6+n6*7) mod 11
如果 c1=10 則 c1=0
c1 應與第七碼同
function CheckPostID(c:String):Boolean; var weight : array[1..6] of integer; iID :array[1..7] of integer; numCheck:integer; index:integer; i:integer; begin result:=True; if Length(c)<>7 then begin result:= false; exit; end; for i:=1 to strlen(pChar(c)) do begin if (c[i]>'9') or (c[i]<'0') then begin result:=false; exit; end else iID[i]:=strtoint(c[i]); end; for i:=1 to 6 do weight[i]:=i 1; numCheck := 0; for i:= 1 to 6 do begin numCheck := numCheck iID[i] * weight[i]; end; numCheck := numCheck mod 11; numCheck := 11 - numCheck; if numCheck > 9 then numCheck := numCheck - 10; if numCheck<>iID[7] then result:= False; end; |
darkside
一般會員 發表:15 回覆:42 積分:16 註冊:2002-03-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |