【Python】PAT-1044 火星数字

1. 题目

image-20210403105335994

2. 代码

2.1 分析

题目本身不难。只是需要处理的判断逻辑还是比较多的。

特别注意:13 ==> 火星文 是tam, 而不是tam tret

26 ==> 火星文 是hel, 而不是hel tret

能整除13的时候,低位的tret不输出。

2.2 代码

low = ['tret','jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jly', 'aug', 'sep', 'oct', 'nov', 'dec']
high = ['tret','tam', 'hel', 'maa', 'huh', 'tou', 'kes', 'hei', 'elo', 'syy', 'lok', 'mer', 'jou']

def to_huoxing(x):
    if x < 13:
        return low[x]
    elif x % 13 == 0:
        # 火星人,当高位上有数字的时候,低位不说0
        return high[x//13]
    else:
        return high[x//13] + " " +  low[x%13]

def to_number(x):
    l = x.split(" ")
    if len(l) == 2:
        # 两位
        i_high = high.index(l[0])
        i_low = low.index(l[1])
        return i_high * 13 + i_low

    # 1位
    i = l[0]
    if i in low:
        return low.index(i)
    else:
        return high.index(l[0])*13


def main(n):
    if '0' <= n[0] and n[0] <= '9':
        n = int(n)
        print(to_huoxing(n))
    else:
        
        print(to_number(n))

    
x = int(input())
for i in range(x):
    s = input()
    main(s)

3. AC截图

image-20210403105724710

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏2同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值