120. 身分證檢驗

I'm a slow walker, but I never walk backwards.

Task Description
身分證檢驗
我國的身分證字號有底下這樣的規則,因此對於任意輸入的身分證字號可以有一些基本的判斷原則,請您來判斷一個身分證字號是否是正常的號碼(不代表確有此號、此人)。

(1) 英文代號以下表轉換成數字
 
    A=10 台北市     J=18 新竹縣     S=26 高雄縣
    B=11 台中市     K=19 苗栗縣     T=27 屏東縣
    C=12 基隆市     L=20 台中縣     U=28 花蓮縣
    D=13 台南市     M=21 南投縣     V=29 台東縣
    E=14 高雄市     N=22 彰化縣     W=32 金門縣
    F=15 台北縣     O=35 新竹市     X=30 澎湖縣
    G=16 宜蘭縣     P=23 雲林縣     Y=31 陽明山
    H=17 桃園縣     Q=24 嘉義縣     Z=33 連江縣
    I=34 嘉義市     R=25 台南縣
 
(2) 英文轉成的數字, 個位數乘9再加上十位數的數字
 
(3) 各數字從右到左依次乘1、2、3、4....8
 
(4) 求出(2),(3) 及最後一碼的和
 
(5) (4)除10 若整除,則為 real,否則為 fake
 
例: T112663836
 
2 + 7*9 + 1*8 + 1*7 + 2*6 + 6*5 + 6*4 + 3*3 + 8*2 + 3*1 + 6 = 180
 
除以 10 整除,因此為 real

Hint

ID_Check.h

打上 function header 以及相關的設定。

void ID_Check(char ID[]);

ID_Check.c

撰寫程式碼後對應上傳。

#include "ID_Check.h"
void ID_Check(char ID[]) {
    /* add your code */
}

main.c

這個檔案無法更改也無須上傳。

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include "ID_Check.h"
 
int main() {
    char ID[100];
    while (scanf("%s", ID) != EOF) {
        ID_Check(ID);
    }
    return 0;
}

Input Format
輸入共一行。每一行包含一組身分證號碼
Output Format
每讀入一行身分證字號,輸出 real or fake
Sample Input

1
T112663836

Sample Output

1
real

Sample Input

1
S154287863

Sample Output

1
fake

Submit

Login

Testdata Set

Download Testdata