電話客服中心


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 1G

Author:
Problem type

許多銀行與公司設有電話客服中心,提供客戶諮詢服務。為了加速身份驗證,來電客戶通常會被要求輸入身份證號碼。然而,由於電話按鍵僅支援數字,輸入身份證字母開頭的第一碼較為不便,因此部分語音系統允許客戶僅輸入後 9 碼,並根據這 9 碼推算可能的英文字母開頭。

身份證號碼的最後一碼為「檢查碼」,此碼是根據前 9 碼推算出來的,推算規則如下:

先依照下表將英文字母轉換為 2 位數字,再加上第 2 到第 9 位的 8 位數字一共有 10 位數字。

地區 代碼 地區 代碼
台北市 A10 彰化縣 N22
台中市 B11 新竹市 O35
基隆市 C12 雲林縣 P23
台南市 D13 嘉義縣 Q24
高雄市 E14 台南縣 R25
台北縣 F15 高雄縣 S26
宜蘭縣 G16 屏東縣 T27
桃園縣 H17 花蓮縣 U28
嘉義市 I34 台東縣 V29
新竹縣 J18 金門縣 W32
苗栗縣 K19 澎湖縣 X30
台中縣 L20 陽明山 Y31
南投縣 M21 連江縣 Z33
  1. 將這 10 位數字從左至右依次相乘:第一位乘 1,第二位乘 9,第三位乘 8,依此類推至第十位乘 1。
  2. 計算每位數字的乘積總和 \(s\)。
  3. 取總和的個位數 \(m\)。
  4. 檢查碼 \(c = 10 - m\)。

假設某人的身份證號碼前 9 碼為 F13024567,那麼他的最後一位檢查碼的計算過程如下:

F 1 3 0 2 4 5 6 7
1 5 1 3 0 2 4 5 6 7
×1 ×9 ×8 ×7 ×6 ×5 ×4 ×3 ×2 ×1

1 + 45 +  8 + 21 +  0 + 10 + 16 + 15 + 12 +  7 = 135

檢查碼 = 10 - (135 % 10) = 5 根據上面的規則,A12345678、M12345678 和 W12345678 這三個號碼的檢查碼都是 9。因此,如果在電話上所輸入的後 9 碼是 123456789 時,它的第一位英文字母可能是 A,也可能是 M 或 W。

輸入格式

輸入有若干筆測試資料,每筆一行,含有一個身份證號碼的後 9 碼。

輸出格式

對於每筆測試資料,將可能的第一位大寫字母依字母順序輸出於一行。

範例輸入

130245675
123456789

範例輸出

FS
AMW

Comments


  • 0
    Go  commented on Nov. 5, 2024, 7:18 a.m.

    這個說明有點饒舌。