蓝桥杯 BASIC-26 基础练习 报时助手

本文介绍了一种算法,用于将给定的时间(小时和分钟)转换为英文读法。该算法覆盖了从0到23小时及0到59分钟的所有情况,并详细说明了如何根据特定规则读出这些时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述
  给定当前的时间,请用英文的读法将它读出来。
  时间用时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 Main
{
	private HashMap<Integer,String> times=new HashMap<Integer,String>();
	public Main()
	{
		times.put(0,"zero");
		times.put(1,"one");
		times.put(2,"two");
		times.put(3,"three");
		times.put(4,"four");
		times.put(5,"five");
		times.put(6,"six");
		times.put(7,"seven");
		times.put(8,"eight");
		times.put(9,"nine");
		times.put(10,"ten");
		times.put(11,"eleven");
		times.put(12,"twelve");
		times.put(13,"thirteen");
		times.put(14,"fourteen");
		times.put(15,"fifteen");
		times.put(16,"sixteen");
		times.put(17,"seventeen");
		times.put(18,"eighteen");
		times.put(19,"nineteen");
		times.put(20,"twenty");
		times.put(30,"thirty");
		times.put(40,"forty");
		times.put(50,"fifty");
	}
	public String getTime(int time)
	{
		return times.get(time);
	}
	public static void main(String[] args)
	{
		Scanner in=new Scanner(System.in);
		int a=in.nextInt();
		int b=in.nextInt();
		if(a%10!=0 && a>20)
		{
			int c=a/10;
			c=c*10;
			Main T1=new Main();
			String t1=T1.getTime(c);
			a=a%10;
			Main T2=new Main();
			String t2=T2.getTime(a);
			System.out.print(t1+" "+t2+" ");
		}
		else
		{
			Main T3=new Main();
			String t3=T3.getTime(a);
			System.out.print(t3+" ");
		}
		if(b%10!=0 && b>20)
		{
			int c=b/10;
			c=c*10;
			Main T4=new Main();
			String t4=T4.getTime(c);
			b=b%10;
			Main T5=new Main();
			String t5=T5.getTime(b);
			System.out.print(t4+" "+t5);
		}
		else if(b==0)
		{
			System.out.print("o'clock");
		}
		else
		{
			Main T6=new Main();
			String t6=T6.getTime(b);
			System.out.print(t6);
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值