题目描述
解题思路
第一种直接是暴力解法,小时和分钟都分为在列表里的情况时和没有在列表里的情况时,列表则为基础的英文数字,下面附上代码:
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)