【問題C19】:身分證號碼檢查。    資料檔       [回前頁]

判斷身分證是否正確,檢查的原則說明如下:

(A)格式:共有十位,第一位為大寫字母,後九位為數字,表示如下:

  L1

D1

D2

D3

D4

D5

D6

D7

D8

D9

(B)性別判定:D1只可為1或2,1表男性、2表女性。

(C)檢查辦法:

    (a)、字母L1由下列表中,找到其代號兩位,令其為X1,X2。X1為十位數,X2為個位數。

字母

A

B

C

D

E

F

G

H

J

K

L

M

N

代號

10

11

12

13

14

15

16

17

18

19

20

21

22

字母

P

Q

R

S

T

U

V

X

Y

W

Z

I

O

代號

23

24

25

26

27

28

29

30

31

32

33

34

35

    (b)計算方法:

    Y=X1+9*X2+8*D1+7*D2+6*D3+5*D4+4*D5+3*D6+2*D7+D8+D9

    如果Y能被10整除,則表示此身分證號碼正確。

【輸入檔案格式】有多筆資料,每筆資料有三個用逗點分開的字元型態資料,依次代表身分證號碼、姓名、性別。

【輸出檔案格式】

依前述原則檢查每筆資料,並列出下列錯誤狀況。

(1)格式錯誤:依(A)檢查若有錯,則列印FORMAT ERROR。

(2)性別錯誤:依(B)檢查及核對檔案內的D1欄位是否符合,若有錯則列印SEX CODE ERROR。(※資料中M是男性,F是女性)

(3)檢核數錯誤:依(C)檢查若有錯,則列印CHECK SUM ERROR。

※請依(A),(B)(C)順序檢查,只列出第一個檢查出的錯誤狀況。

※在印出結果時,應按身分證號碼由小到大排序(參考範例輸出)。

【輸入檔案範例】

V120498032,DARIUS,M

B12X767544,ISAAC,M

H221930843,ALICE,M

G220977967,ANGEL,F

B220713002,CATHY,F

E221142995,BETTY,F

P220668834,CLAIRE,F

J220374186,DELIA,F

A102947623,DENNIS,M

F222490168,DONA,F

【輸出檔案範例】

A102947623 DENNIS M

B12X767544 ISAAC M FORMAT ERROR

B220713002 CATHY F

E221142995 BETTY F CHECK SUM ERROR

F222490168 DONA F

G220977967 ANGEL F

H221930843 ALICE M SEX CODE ERROR

O220374186 DELIA F CHECK SUM ERROR

P220668834 CLAIRE F

V120498032 DARIUS M