['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])
['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])
['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])
大確實但是
兩年了誒老兄