题解:洛谷 P5730 【深基5.例10】显示屏
【题目来源】
【题目描述】
液晶屏上,每个阿拉伯数字都是可以显示成 \(3\times 5\) 的点阵的(其中 X 表示亮点,. 表示暗点)。现在给出数字位数(不超过 \(100\))和一串数字,要求输出这些数字在显示屏上的效果。数字的显示方式如同样例输出,注意每个数字之间都有一列间隔。
【输入】
第一行输入一个正整数 \(n\),表示数字的位数。
第二行输入一个长度为 \(n\) 的自然数。
【输出】
输出五行,表示显示屏上的数字。
【输入样例】
10
0123456789
【输出样例】
XXX...X.XXX.XXX.X.X.XXX.XXX.XXX.XXX.XXX
X.X...X...X...X.X.X.X...X.....X.X.X.X.X
X.X...X.XXX.XXX.XXX.XXX.XXX...X.XXX.XXX
X.X...X.X.....X...X...X.X.X...X.X.X...X
XXX...X.XXX.XXX...X.XXX.XXX...X.XXX.XXX
【算法标签】
《洛谷 P5730 显示屏》 #模拟#
【代码详解】
#include <bits/stdc++.h> // 包含标准库头文件(万能头文件)
using namespace std; // 使用标准命名空间
int n; // 定义变量:数字的位数
string s[5]; // 定义数组:存储最终输出的5行字符串
string a[10][5]; // 定义二维数组:存储0-9每个数字的5行点阵表示
string str; // 定义变量:输入的数字字符串
int main()
{
// 初始化数字0的点阵表示
a[0][0] = "XXX";
a[0][1] = "X.X";
a[0][2] = "X.X";
a[0][3] = "X.X";
a[0][4] = "XXX";
// 初始化数字1的点阵表示
a[1][0] = "..X";
a[1][1] = "..X";
a[1][2] = "..X";
a[1][3] = "..X";
a[1][4] = "..X";
// 初始化数字2的点阵表示
a[2][0] = "XXX";
a[2][1] = "..X";
a[2][2] = "XXX";
a[2][3] = "X..";
a[2][4] = "XXX";
// 初始化数字3的点阵表示
a[3][0] = "XXX";
a[3][1] = "..X";
a[3][2] = "XXX";
a[3][3] = "..X";
a[3][4] = "XXX";
// 初始化数字4的点阵表示
a[4][0] = "X.X";
a[4][1] = "X.X";
a[4][2] = "XXX";
a[4][3] = "..X";
a[4][4] = "..X";
// 初始化数字5的点阵表示
a[5][0] = "XXX";
a[5][1] = "X..";
a[5][2] = "XXX";
a[5][3] = "..X";
a[5][4] = "XXX";
// 初始化数字6的点阵表示
a[6][0] = "XXX";
a[6][1] = "X..";
a[6][2] = "XXX";
a[6][3] = "X.X";
a[6][4] = "XXX";
// 初始化数字7的点阵表示
a[7][0] = "XXX";
a[7][1] = "..X";
a[7][2] = "..X";
a[7][3] = "..X";
a[7][4] = "..X";
// 初始化数字8的点阵表示
a[8][0] = "XXX";
a[8][1] = "X.X";
a[8][2] = "XXX";
a[8][3] = "X.X";
a[8][4] = "XXX";
// 初始化数字9的点阵表示
a[9][0] = "XXX";
a[9][1] = "X.X";
a[9][2] = "XXX";
a[9][3] = "..X";
a[9][4] = "XXX";
// 输入数字位数和数字字符串
cin >> n >> str;
// 构建点阵输出
for (int i = 0; i < n; i++)
{
int t = str[i] - '0'; // 将字符数字转换为整型数字
// 将当前数字的点阵拼接到输出字符串中
for (int j = 0; j < 5; j++)
{
s[j] += a[t][j]; // 拼接当前数字的点阵行
// 如果不是最后一个数字,添加点分隔符
if (i != n - 1)
s[j] += ".";
}
}
// 输出最终的点阵结果
for (int i = 0; i < 5; i++)
cout << s[i] << endl;
return 0; // 程序正常结束
}
【运行结果】
5
12345
..X.XXX.XXX.X.X.XXX
..X...X...X.X.X.X..
..X.XXX.XXX.XXX.XXX
..X.X.....X...X...X
..X.XXX.XXX...X.XXX
浙公网安备 33010602011771号