1044. 火星数字(20)--Python

开始的时候测试点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)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值