徐稳权


私信TA

用户名:18671468805

访问量:10790

签 名:

等  级
排  名 566
经  验 4342
参赛次数 0
文章发表 58
年  龄 0
在职情况 学生
学  校 湖北生物科技职业学院
专  业

  自我简介:

解题思路:  首先确定h的值,h的值利用下标的形式来确定,并且给Map集合0-23的全部英文的0-23,这样对应的小标就是h的值,也是对应的m的0-23的值
                 其次了确定m的值,m的值分三种、第一种是否为0,就输出h+" o'clock"

                                                                      第二种那就是0到20并且%10==0,就输出h+m的值,

                                                                      第三种,就是21-29,31-39,41-49,51-59的值 这个的话,h值不变,但是m做二次拼接字符串的形式输出也就是

                                                                        h+m+m来输出

注意事项:



参考代码:

import java.util.HashMap;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        //创建扫描器
        Scanner scanner = new Scanner(System.in);
        //声明一个HashMap集合
        HashMap<Integer,String> map = new HashMap<Integer, String>();
        //声明数组,把0-23的值初始化,方便h的输出
        String digit[] = {"zero","one","two","three","four","five","six","seven",
                          "eight","nine","ten","eleven","twelve","thirteen","fourteen",
                          "fifteen","sixteen","seventeen","eighteen","nineteen",
                          "twenty","twenty one","twenty two","twenty three"};
        //利用For来让数组的数给到hashMap中去,并且加入30,40,50这些值,方便m的输出
        for(int i = 0;i<=23;i++)
            map.put(i, digit[i]);
        map.put(30, "thirty");
        map.put(40, "forty");
        map.put(50, "fifty");
        //利用while的特性来输出数组
        while(scanner.hasNext()) {
            //接收用户输入的数字,因为h的固定的下标,输入的是几,小标就是几,所以不用管h的值,
                             //因为m的下标不确定,所以要判断,但是分为三种情况,第一种是否为0,
                                                                              //第二种那就是0到20并且%10==0,
                                                                              //第三种,就是21-29,31-39,41-49,51-59的值
            int h = scanner.nextInt(),m = scanner.nextInt();
            //为下面的拼接字符串做准备
            String ans = "";
            //首先判定m第一个数是否为0
            if(m == 0) {
                //要是为0就输出h的下标的已经初始化了数据
                ans = map.get(h)+" o'clock";
            }
            //然后判定m是不是在0到20之间或者是%10==0
            else if(0<m&&m<=20 || m%10==0){
                //那么就输出他的h值和他的已经初始化了数据
                ans = map.get(h) +" "+ map.get(m);
            }
            //就不是在0-20并且m!=0并且%10不等于0
            else {
                //那么就输出h的值,在加上第一个m的已经初始化了数据和第二个m已经初始化了数据
                ans = map.get(h)+" "+map.get(m/10*10)+" "+map.get(m%10);
            }
            //最后输出ans的值
            System.out.println(ans);
        }
        //关掉扫描器
        scanner.close();
    }
}


 

0.0分

2 人评分

  评论区

  • «
  • »