PTA 乙级 1044 火星数字 (20分) Python
测试点2,4:130(tam)13整数倍的情况
Python
1 unit = ['tret', 'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jly', 'aug', 2 'sep', 'oct', 'nov', 'dec'] 3 decade = [' ', 'tam', 'hel', 'maa', 'huh', 'tou', 'kes', 'hei', 'elo', 4 'syy', 'lok', 'mer', 'jou'] 5 6 def earthnum(earth): #地球文转火星文 7 u = eval(earth) % 13 8 d = eval(earth) // 13 9 if d == 0: 10 return unit[u] # 只有个位 11 else: 12 if u == 0: 13 return decade[d] # 类似地球文为130的情况((测试点2,4) 14 return decade[d] + ' ' + unit[u] # 两位 15 16 def marsnum(mars): # 火星文转地球文 17 m = mars.split(" ") 18 if len(m) == 1: # 只有一位火星文 19 if m[0] in decade: # 高位火星文 20 return str(decade.index(m[0]) * 13) 21 else: # 1~12火星文 22 return str(unit.index(m[0])) 23 else: #两位火星文 24 return str(13 * decade.index(m[0]) + unit.index(m[1])) 25 26 n = eval(input()) 27 s = [] 28 for i in range(n): 29 num = input() 30 if num.isnumeric(): 31 s.append(earthnum(num)) 32 else: 33 s.append(marsnum(num)) 34 print("\n".join(s))
默默地一点点变强,细节决定成败