#29743: 土炮解法(Python


seanpekka (程式小白)

學校 : 不指定學校
編號 : 185069
來源 : [140.116.131.107]
最後登入時間 :
2023-12-18 19:51:15
a020. 身分證檢驗 | From: [1.170.29.157] | 發表日期 : 2022-03-28 23:07

local_table = {'A':10,'B':11,'C':12,'D':13,'E':14,'F':15,'G':16,'H':17,'I':34,
        'J':18,'K':19,'L':20,'M':21,'N':22,'O':35,'P':23,'Q':24,'R':25,
        'S':26,'T':27,'U':28,'V':29,'W':32,'X':30,'Y':31,'Z':33}#創建字典

id_num = input()
sep_id = list(id_num)
local_name = str(local_table[sep_id[0]])#轉換地名為數字
sep_localnum = list(local_name)
sep_localnum[0] = int(sep_localnum[0])#將地名數字從str轉為int
sep_localnum[1] = int(sep_localnum[1])*9#將地名數字從str轉為int
allnum = 0
newnum = list()
while True:
    for i in range(1,10):#掠過開頭的第一個英文字,其他數字一一乘上對應的數(8'7'6....)
        if i != 9 :
            newnum.append(int(sep_id[i])*(9-i))
        else:#避免到9時,乘0
            newnum.append(int(sep_id[i]))
    for i in newnum:#將乘過的數相加
        allnum = allnum + i
    allnum =  allnum +  sep_localnum[0] + sep_localnum[1]#總數字加上地名數字
    if allnum % 10 == 0 :#判斷句
        print("real")
        break
    else:
        print("fake")
        break
 
ZeroJudge Forum