题目链接:报时助手
直接按照题意去模拟就好了,注意一下m等于零的时候是输出o'clock不是zero(被这个点坑无数次,一直没看题意)
#include <bits/stdc++.h>
using namespace std;
int main(){
string tim[21] = {"zero","one","two","three",
"four","five","six","seven","eight","nine",
"ten","eleven","twelve","thirteen","fourteen",
"fifteen","sixteen","seventeen","eighteen",
"nineteen","twenty"};
string ti[3] = {"thirty","forty",
"fifty"};
int h,m;
while(cin>>h>>m){
if(h <= 20) cout<<tim[h]<<" ";
else cout<<tim[20]<<" "<<tim[h%20]<<" ";
if(m == 0) cout<<"o'clock";
else if(m <= 20) cout<<tim[m];
else{
if(m < 30&&m%20 != 0) cout<<tim[20]<<" "<<tim[m%20];
else if(m < 30&&m%20 == 0) cout<<tim[20];
else if(m < 40&&m%30 != 0) cout<<ti[0]<<" "<<tim[m%30];
else if(m < 40&&m%30 == 0) cout<<ti[0];
else if(m < 50&&m%40 != 0) cout<<ti[1]<<" "<<tim[m%40];
else if(m < 50&&m%40 == 0) cout<<ti[1];
else if(m < 60&&m%50 != 0)cout<<ti[2]<<" "<<tim[m%50];
else if(m < 60&&m%50 == 0)cout<<ti[2];
}
cout<<endl;
}
return 0;
}