蓝桥杯基础练习VIP-报时助手PYTHON数据结构算法题

题目描述

解题思路 

第一种直接是暴力解法,小时和分钟都分为在列表里的情况时和没有在列表里的情况时,列表则为基础的英文数字,下面附上代码:

    h,m=input().strip().split()
    numb={0:'zero',1:'one',2:'two',3:'three',4:'four',5:'five',6:'six',7:'seven',8:'eight',9:'nine',10:'ten',11:'eleven',12:'twelve',13:'thirteen',14:'fourteen',15:'fifteen',16:'sixteen',17:'seventeen',18:'eighteen',19:'nineteen',20:'twenty',
          30:'thirty',40:'forty',50:'fifty'}
    if int(h)%10==0 or int(h)<=20:
        if int(m)==0:
            print(numb[int(h)],"o'clock")
        elif int(m)%10==0 or int(m)<=20:
            print(numb[int(h)],numb[int(m)])
        else:
                print(numb[int(h)],numb[int(int(m)/10)*10],numb[int(m)%10])
    else:
        if int(m)==0:
            print(numb[int(int(h)/10)*10],numb[int(h)%10],"o'clock")
        elif int(m)%10==0 or int(m)<=20:
            print(numb[int(int(h)/10)*10],numb[int(h)%10],numb[int(m)])
        else:
            print(numb[int(int(h)/10)*10],numb[int(h)%10], numb[int(int(m) / 10) * 10], numb[int(m) % 10])

第二种和第一种思路差不多只不过是把numb的key换成了str所以在写print的时候会简单一些,下面附上代码:

h,m=[int(i) for i in input().split()]

readline = {'0':'zero','1':'one','2':'two','3':'three','4':'four','5':'five',

'6':'six','7':'seven','8':'eight','9':'nine','10':'ten','11':'eleven','12':'twelve',

'13':'thirteen','14':'fourteen','15':'fifteen','16':'sixteen','17':'seventeen',

'18':'eighteen','19':'nineteen','20':'twenty','30':'thirty','40':'forty','50':'fifty'}



def clockread(h):

    if h<=20:

        print(readline[str(h)],end='')

    else:

        a=readline['20']

        h=h-20

        print(a,readline[str(h)],end='')



def minread(m):

    if m==0:

        print("o'clock")

    else:

        a=m//10

        b=m%10

        if m<=20:

            print(readline[str(m)])

        else:

            print(readline[str(a)+'0'],readline[str(b)])



clockread(h)

print(' ',end='')

minread(m)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值