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))

 

posted @ 2020-08-01 02:26  上帝的绵羊  阅读(265)  评论(0编辑  收藏  举报