電話客服中心


Submit solution

分數: 100 (partial)
時間限制: 1.0s
記憶體限制: 1G

作者:
題目類型
允許的語言
Assembly, Brainfuck, C, C++, Python

很多銀行及公司設立了電話客服中心來服務他們的客戶。為了加速身分的查核,常常會要求打電話進來的客戶輸入他的身分證號碼。可是電話上只有數字鍵,要輸入身分證號碼的第一個字母有點麻煩,因此有的語音系統會要求來電者輸入後 9 碼,再根據後 9 碼來推算可能的英文字母。
很多人都知道,身分證號碼的最後一碼是「檢查碼」,它是用前 9 碼所推算出來的,其推算的規則如下:

  1. 先依照下表將英文字母轉換為 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

  2. 由左至右,第一位乘 1,第二位乘 9,第三位乘 8,第四位乘 7...,以此類推,最後一位乘 1。
  3. 求各位相對數字乘積的總和 s。
  4. 求 s 的個位數 m。
  5. 檢查碼 c = (10 - m) % 10 。
  6. 假設某人的身份證號碼前 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

評論

目前沒有評論。