#include <bits/stdc++.h>
using namespace std;

unordered_map<int, string> table{
	{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"}
};

void solution(int num){
	if(num <= 20 || num == 30 || num == 40 || num == 50){
		cout << table[num];
		return;
	}
	int gewei = num % 10, shiwei = (num / 10) * 10;
	cout << table[shiwei] << " " << table[gewei];
}

int main()
{

	int h, m;
	cin >> h >> m;
	if(m == 0){
		solution(h);
		cout << " " << "o'clock" << endl;
	}
	else{
		solution(h);
		cout << " ";
		solution(m);
		cout << endl;
	}
	return 0;
}

解题思路:
        这题麻烦的是建表,用unordered map来建表,然后分两种情况:1、m == 0  直接读h的表就行了; 2、m != 0  读h ,再读m
注意事项:
            写了一个函数处理读数转换英文, 应该挺简单明了
参考代码:

点赞(0)
 

0.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论