开始的时候测试点2与4显示答案错误,后来在查阅资料的时候,突然想到是有个情况没有考虑到,就是在从地球文转换为火星文时,对于例如13的地球文,在转换为火星文时,应该只输出进位就可以了,不需要把个位的0对用的火星文显示出来,在改了这个问题后,就全部通过了。
这个题目并不难,主要是把这种情况都考虑清楚。
# 得到地球文到火星文的转换
def get_Mars(my_num, fir_list, last_list):
my_num = int(my_num)
round = my_num // 13
remainder = my_num % 13
if round:
if remainder:
result = last_list[round - 1] + ' ' + fir_list[remainder]
else:
result = last_list[round - 1]
else:
result = fir_list[remainder]
return result
# 得到火星文到地球文的转换
def get_Earth(my_num, fir_list, last_list):
result = 0
if ' ' in my_num:
fir_num, last_num = my_num.split()
for i in range(12):
if fir_num == last_list[i]:
result += 13 * (i + 1)
break
for i in range(13):
if last_num == fir_list[i]:
result += i
else:
if my_num in fir_list:
for i in range(13):
if my_num == fir_list[i]:
result += i
break
else:
for i in range(12):
if my_num == last_list[i]:
result += (i + 1) * 13
break
return result
num = input()
num = int(num)
out_list = []
fir_list = ['tret', 'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jly', 'aug', 'sep', 'oct', 'nov', 'dec']
last_list = ['tam', 'hel', 'maa', 'huh', 'tou', 'kes', 'hei', 'elo', 'syy', 'lok', 'mer', 'jou']
for i in range(num):
my_num = input()
if my_num.isdigit():
result = get_Mars(my_num, fir_list, last_list)
else:
result = get_Earth(my_num, fir_list, last_list)
out_list.append(result)
for my_n in out_list:
print(my_n)