#24191: [Python] 較笨的方式 AC(22ms) 歡迎指教討論


4a830017@stust.edu.tw (陳翊嘉)

學校 : 南臺科技大學
編號 : 141862
來源 : [120.117.41.119]
最後登入時間 :
2023-01-20 01:06:59
a020. 身分證檢驗 | From: [114.27.29.165] | 發表日期 : 2021-01-26 16:00

大家好,我是一個剛學習程式語言沒多久的學生,程式碼如下,應該會有比較聰明的寫法,但是目前沒有想到。請求各位大神指教。

 

CountNumber=0

def E2N(English):

    if English == "A":

        return "10"

   ...一直到"Z"

       return "33"

while 1:

    try:

        ID=str(input())

        EnglishToNumber=E2N(ID[0])

        EnglishToNumber=( int(EnglishToNumber[0]) + int(EnglishToNumber[1])*9 )      #英文轉為數字後做加、乘

           

        for i in range(9,1,-1):

                CountIdNumber=int(ID[-i])*int(i-1)

                CountNumber+=CountIdNumber

 

        CountNumber+=int(ID[-1])

 

        if (EnglishToNumber + CountNumber) % 10 == 0:

                print("real")

        else:

                print("fake")

 

 

    except:

 

        break

 
#24192: Re:[Python] 較笨的方式 AC(22ms) 歡迎指教討論


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [122.117.95.179]
最後登入時間 :
2025-01-02 13:43:55
a020. 身分證檢驗 | From: [61.223.34.232] | 發表日期 : 2021-01-26 16:24

寫的不錯,等寫熟一點可以把  def E2N(English) 改成 dict 

 
ZeroJudge Forum