Asistente de informe de tiempo VIP de Blue Bridge Cup

Descripción del problema

Dada la hora actual, léala en inglés.
  El tiempo se expresa en horas h y minutos M. En la lectura en inglés, la forma de leer una hora es:
  si m es 0, luego lea la hora, luego agregue "en punto", como 3:00 lea "tres" en punto ".
  Si m no es 0, lea el tiempo y luego lea los puntos, como 5:30, lea "cinco y media".
  Las horas y los minutos se pronuncian en números ingleses, 0-20 se pronuncia como:
  0: cero, 1: uno, 2: dos, 3: tres, 4: cuatro, 5: cinco, 6: seis, 7: siete, 8: ocho, 9: nueve, 10: diez, 11: once, 12: doce, 13: trece, 14: catorce, 15: quince, 16: dieciseis, 17: diecisiete, 18: dieciocho, 19: diecinueve, veinte y veinte.
  30 se pronuncia treinta, 40 es cuarenta y 50 es cincuenta.
  Para números mayores que 20 y menores que 60, primero lea los diez completos, luego agregue los dígitos individuales. Por ejemplo, 31 lee primero 30 y luego agrega 1, que se lee como "treinta y uno".
  De acuerdo con la regla anterior, 21:54 dice "veintiuno cincuenta y cuatro", 9:07 dice "nueve siete" y 0:15 dice "cero quince".

Formato de entrada

La entrada contiene dos enteros no negativos h y m, que representan las horas y minutos de tiempo. Los números distintos de cero no tienen ceros a la izquierda. h es menor que 24, m es menor que 60.

Formato de salida

Inglés salida de tiempo y tiempo.

Entrada de muestra

0 15

Salida de muestra

cero quince

Código de resolución de problemas

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;

public class Main {

	static Scanner sc = new Scanner(System.in);
	
	public static void main(String[] args) {
		
		Map<Integer, String> maps = new HashMap<Integer, String>();
		maps.put(1, "");
		String str = "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";
		
		String [] strArr = str.split(",");
		
		for (int i = 0; i < strArr.length; i++) {
			String str2Arr[] = strArr[i].split(":");
			maps.put(Integer.valueOf(str2Arr[0]),str2Arr[1]);
		}
		
		//输入日期
		int h = sc.nextInt();//小于24(小时)
		int m = sc.nextInt();//小于60(分)
		
		//判断是否符合规则
		if(h<=24 && m<=60) {
			
			String strH="";
			String strM="";
			
			if(h<=20) {
				strH = maps.get(h);
			}else if(h>20) {
				strH = maps.get(20) +" "+ maps.get(h-20);
			}
			
			//如果是整数就直接返回
			if(m==20 || m==30 || m==40 || m==50) {
				strM = maps.get(m);
			}else if(m<20) {
				//m=19?
				strM = maps.get(m);
			}else if(m>20 && m<30) {
				//m=29?
				//29-20=9
				strM = maps.get(20)+" " + maps.get(m-20);
			}else if(m>30 && m<40) {
				//m=329?
				//39-30=9
				strM = maps.get(30)+" " + maps.get(m-30);
			}else if(m>40 && m<50) {
				//m=49?
				//49-40=9
				strM = maps.get(40)+" " + maps.get(m-40);
			}else if(m>50 && m<60) {
				//m=59?
				//59-50=9
				strM = maps.get(50) +" "+ maps.get(m-50);
			}
			
			System.out.println(strH+" "+strM);
		}
		
		
		
		
//		for (Integer key : maps.keySet()) {
//			System.out.println(key+"--->"+maps.get(key));
//		}
		
	}

	
}

发布了186 篇原创文章 · 获赞 3233 · 访问量 24万+

Supongo que te gusta

Origin blog.csdn.net/qq_17623363/article/details/105626333
Recomendado
Clasificación