zoukankan      html  css  js  c++  java
  • 基础练习 报时助手

    问题描述
      给定当前的时间,请用英文的读法将它读出来。
      时间用时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
     1 #include<iostream>
     2 #include<string>
     3 #include<cstring>
     4 using namespace std;
     5 const string s = " o'clock";
     6 
     7 int main()
     8 {
     9     int h,m;
    10     while(cin >> h >> m)
    11     {
    12         string num_english[] = {"zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty"};
    13         string sh="" , sm = "";
    14         string str;
    15         if(h >= 0 && h <= 20)
    16         {
    17             sh += num_english[h];
    18         }
    19         else
    20         {
    21             sh = sh + "twenty " + num_english[h % 20]; 
    22         }
    23         if(m > 0 && m <= 20)
    24         {
    25             sm += num_english[m];
    26          } 
    27          else if(m >= 21 && m <= 29)
    28          {
    29              sm = sm + "twenty " + num_english[m % 20];
    30          }
    31          else if(m == 30)
    32          {
    33              sm += "thirty";
    34          }
    35          else if(m > 30 && m <= 39)
    36          {
    37              sm = sm + "thirty " + num_english[m % 30];
    38          }
    39          else if(m == 30)
    40          {
    41              sm += "thirty";
    42          }
    43          else if(m > 30 && m <= 39)
    44          {
    45              sm = sm + "thirty " + num_english[m % 30];
    46          }
    47          else if(m == 40)
    48          {
    49              sm += "forty";
    50          }
    51          else if(m > 40 && m <= 49)
    52          {
    53              sm = sm + "forty " + num_english[m % 40];
    54          }
    55          else if(m == 50)
    56          {
    57              sm += "fifty";
    58          }
    59          else if(m > 50 && m <= 59)
    60          {
    61              sm = sm + "fifty " + num_english[m % 50];
    62          }
    63          if(m == 0)
    64          {
    65              str = sh + s; 
    66          }
    67          else
    68          {
    69              str = sh + " " + sm;
    70          }
    71          cout << str << endl;
    72     }
    73     
    74     return 0;
    75 }
     
  • 相关阅读:
    c copy
    IfcVertexLoop
    qt windeployqt 日志
    IfcPolyLoop
    IfcEdgeLoop
    IfcLoop
    QTableWidget
    QList删除元素
    matlab X的负次方函数绘制2
    matlab X的负次方函数绘制1
  • 原文地址:https://www.cnblogs.com/wlyperfect/p/12561604.html
Copyright © 2011-2022 走看看