BASIC-26 报时助手

BASIC-26 报时助手

题目

资源限制

时间限制:1.0s 内存限制:512.0MB

问题描述

给定当前的时间,请用英文的读法将它读出来。
时间用时 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。

输出格式

输出时间时刻的英文。

样例输入

0 15

样例输出

zero fifteen

题解

import java.util.Scanner;
import java.util.HashMap;

public class BASIC_26 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String h = scanner.next();
        String m = scanner.next();
        scanner.close();
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("0", "zero");
        map.put("1", "one");
        map.put("2", "two");
        map.put("3", "three");
        map.put("4", "four");
        map.put("5", "five");
        map.put("6", "six");
        map.put("7", "seven");
        map.put("8", "eight");
        map.put("9", "nine");
        map.put("10", "ten");
        map.put("11", "eleven");
        map.put("12", "twelve");
        map.put("13", "thirteen");
        map.put("14", "fourteen");
        map.put("15", "fifteen");
        map.put("16", "sixteen");
        map.put("17", "seventeen");
        map.put("18", "eighteen");
        map.put("19", "nineteen");
        map.put("20", "twenty");
        map.put("30", "thirty");
        map.put("40", "forty");
        map.put("50", "fifty");
        String value = m.equals("0") ? "o'clock" : form(m, map);
        System.out.println(form(h, map) + " " + value);
    }

    public static String form(String n, HashMap<String, String> map) {
        if (map.containsKey(n))
            return map.get(n);
        else
            return map.get(n.charAt(0) + "0") + " " + map.get("" + n.charAt(1));
    }
}
posted @ 2022-03-19 14:53  morning-start  阅读(19)  评论(0编辑  收藏  举报