题目
给定当前的时间,请用英文的读法将它读出来。
时间用时h和分m表示,在英文的读法中,读一个时间的方法是:
如果m为0,则将时读出来,然后加上“o'clock”,如3:00读作“three o'clock”。
如果m不为0,则将时读出来,然后将分读出来,如5:30读作“five thirty”。
时和分的读法使用的是英文数字的读法,其中0~20读作:
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。
对于大于20小于60的数字,首先读整十的数,然后再加上个位数。如31首先读30再加1的读法,读作“thirty one”。
按上面的规则21:54读作“twenty one fifty four”,9:07读作“nine seven”,0:15读作“zero fifteen”。
输入格式
输入包含两个非负整数h和m,表示时间的时和分。非零的数字前没有前导0。h小于24,m小于60。
输出格式
输出时间时刻的英文。
解析
一、递归实现计算
二、用一个列表记录牛数量
三、最后输出数量
代码
shu = []
n,m = map(int,input().split()) #n为小时 m为分钟
shijian = {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: 'ninety', 20: 'twenty', 30: 'thirty', 40: 'forty', 50: 'fifty'} #设置字典进行查找对应英语单词
def chazhao(n,m):
if m!=0: #先讨论分不为0的情况
if n>20: #当小时大于20时需要进行讨论
shu1 = n // 10*10 #获得十位
shu.append(shu1) #加入列表中
shu2 = n % 20
shu.append(shu2)
if m>20:
shu3 = m // 10*10
shu.append(shu3)
shu4 = m % 10
shu.append(shu4) #加入列表中或者直接输出结果
# print(f"{shijian[shu1]} {shijian[shu2]} {shijian[shu3]} {shijian[shu4]}")
else:
shu.append(m) #分钟不大于20的情况
# print(f"{shijian[shu1]} {shijian[shu2]} {shijian[m]}")
else:
shu.append(n) #小时不大于20的情况
if m>20: #分类讨论和上面类似
shu3 = m // 10 * 10
shu.append(shu3)
shu4 = m % 10
shu.append(shu4)
else:
shu.append(m)
# print(f"{shijian[n]} {shijian[m]}")
for i in range(len(shu)): #循环输出列表的元素就为结果
if shu[i] == 0: #当元素为0就跳过本次循环
continue
print(f'{shijian[shu[i]]} ',end = '')
else: #当分钟为0时的情况
if n > 20:
shu1 = n // 10*10
shu2 = n % 20
shu.append(shu1)
shu.append(shu2)
# print(f"{shijian[shu1]} {shijian[shu2]} o'clock")
else:
shu.append(n)
# print(f"{shijian[n]} o'clock")
for i in range(len(shu)): #循环输出列表的元素
if shu[i] == 0:
continue
print(f'{shijian[shu[i]]} ',end = '')
print("o'clock")
chazhao(n,m) #调用函数
i,m = map(int,input().split(':'))
dic = {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 shi(n):#判断时
if n in dic:
n = dic[n]
return n
else:
ge = dic[n%10]
shi = dic[n-(n%10)]
return shi+' '+ge
def fen(n): #判断分
if n==0:
return "o'clock" #当分为0时
elif n in dic:
n = dic[n]
return n
else:
ge = dic[n%10]
shi = dic[n-(n%10)]
return shi+' '+ge
print(shi(i),fen(m))