#33928: Python 一行解 uwu


JonaroD (Leina Stella)


['BNZ','AMW','KLY','JVX','HU','GT','FS','ER','DOQ','CIP'] # 逆推檢查碼的公式時會發現有同餘的現象,整理成一個查表

((8-i[0])+(i[0]==8))*i[1] # 在逆推公式時會需要 10k -  檢查碼 - 前八碼 可以換成 10k - (檢查碼 + 前八碼)

因同餘可整理成單一算式,取代使用象牙符號

# print(['BNZ','AMW','KLY','JVX','HU','GT','FS','ER','DOQ','CIP'][(10-sum(map(lambda i:((8-i[0])+(i[0]==8))*i[1] , enumerate((map(int,input())))))%10)%10])

#54103: Re: Python 一行解 uwu


boy0399@gmail.com (fantasy_whale)


['BNZ','AMW','KLY','JVX','HU','GT','FS','ER','DOQ','CIP'] # 逆推檢查碼的公式時會發現有同餘的現象,整理成一個查表

((8-i[0])+(i[0]==8))*i[1] # 在逆推公式時會需要 10k -  檢查碼 - 前八碼 可以換成 10k - (檢查碼 + 前八碼)

因同餘可整理成單一算式,取代使用象牙符號

# print(['BNZ','AMW','KLY','JVX','HU','GT','FS','ER','DOQ','CIP'][(10-sum(map(lambda i:((8-i[0])+(i[0]==8))*i[1] , enumerate((map(int,input())))))%10)%10])

其實pythone取餘數可以對負數使用,所以你的一行解可以改成這樣,會比較簡潔

print(['BNZ','AMW','KLY','JVX','HU','GT','FS','ER','DOQ','CIP'][sum(map(lambda x:(8-x[0]+(x[0]==8))*x[1] ,enumerate(map(int,input()))))*-1%10])
#54112: Re: Python 一行解 uwu


JonaroD (Leina Stella)


['BNZ','AMW','KLY','JVX','HU','GT','FS','ER','DOQ','CIP'] # 逆推檢查碼的公式時會發現有同餘的現象,整理成一個查表

((8-i[0])+(i[0]==8))*i[1] # 在逆推公式時會需要 10k -  檢查碼 - 前八碼 可以換成 10k - (檢查碼 + 前八碼)

因同餘可整理成單一算式,取代使用象牙符號

# print(['BNZ','AMW','KLY','JVX','HU','GT','FS','ER','DOQ','CIP'][(10-sum(map(lambda i:((8-i[0])+(i[0]==8))*i[1] , enumerate((map(int,input())))))%10)%10])

其實pythone取餘數可以對負數使用,所以你的一行解可以改成這樣,會比較簡潔

print(['BNZ','AMW','KLY','JVX','HU','GT','FS','ER','DOQ','CIP'][sum(map(lambda x:(8-x[0]+(x[0]==8))*x[1] ,enumerate(map(int,input()))))*-1%10])


大確實但是
兩年了誒老兄