2376. 报时助手
1000ms
256MB
简单
字符串
题目描述
给定当前的时间,请用英文的读法将它读出来。
时间用小时 $h$ 和分钟 $m$ 表示,在英文的读法中,读一个时间的方法是:
1. 如果 $m$ 为 $0$,则将时读出来,然后加上 `"o'clock"`。例如:`3:00` 读作 `"three o'clock"`。
2. 如果 $m$ 不为 $0$,则将时读出来,然后将分读出来。例如:`5:30` 读作 `"five thirty"`。
时和分的读法使用的是英文数字的读法,其中 $0 \sim 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` 读作 `"thirty one"`。
按上述规则:
- `21:54` 读作 `"twenty one fifty four"`
- `9:07` 读作 `"nine seven"`
- `0:15` 读作 `"zero fifteen"`
输入格式
- 输入包含两个非负整数 $h$ 和 $m$,表示小时和分钟,中间用空格隔开。
- 数据满足 $0 \le h < 24$,$0 \le m < 60$。非零的数字前没有前导 $0$。
输出格式
- 输出一行字符串,表示对应时刻的英文读法。
样例 1
输入 (Input)
0 15
输出 (Output)
zero fifteen
- 对于 $100\%$ 的数据:$0 \le h < 24$,$0 \le m < 60$。
- **拼写注意**:注意 $40$ 的英文拼写为 `"forty"` 而非 `"fourty"`。
- **算法提示**:
由于涉及的数字范围较小(最大为 $59$),可先在程序中构建一个基础数字字符串数组来处理 $0 \sim 20$ 的直接映射。
对于大于 $20$ 且非整十的数,通过整除和取余操作(即 `num / 10` 和 `num % 10`)拆分成十位和个位,然后组合输出。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功