北京做养生SPA的网站建设,有做模仿易企秀网站吗,网站建设上海诏业,优惠活动推广文案【深基5.例10】显示屏
题目描述
液晶屏上#xff0c;每个阿拉伯数字都是可以显示成 3 5 3\times5 35 的点阵的#xff08;其中 X 表示亮点#xff0c;. 表示暗点#xff09;。现在给出数字位数#xff08;不超过 100 100 100#xff09;和一串数字#xff0c;要求输…【深基5.例10】显示屏
题目描述
液晶屏上每个阿拉伯数字都是可以显示成 3 × 5 3\times5 3×5 的点阵的其中 X 表示亮点. 表示暗点。现在给出数字位数不超过 100 100 100和一串数字要求输出这些数字在显示屏上的效果。数字的显示方式如同样例输出注意每个数字之间都有一列间隔。
输入格式
第一行输入一个正整数 n n n表示数字的位数。
第二行输入一个长度为 n n n 的自然数。
输出格式
输出五行表示显示屏上的数字。
样例 #1
样例输入 #1
10
0123456789样例输出 #1
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提示
数据保证 1 ≤ n ≤ 100 1 \leq n \leq 100 1≤n≤100。 思路
使用一个二维数组 t 来存储数字 0 到 9 的显示模式。每个数字的显示模式由一个 5x3 的字符数组表示其中 ‘X’ 表示亮点‘.’ 表示空白。
根据输入的数字字符串使用 printNum 函数将每个数字的显示模式复制到一个二维字符数组 s 中。在复制过程中使用 offset 变量来记录每个数字的偏移量以便正确地放置数字。每个数字之间通过 printLine 函数插入一行空白。最后将 s 数组中的内容输出到屏幕上。 AC代码
#include iostream
#include string
#define AUTHOR HEX9CF
using namespace std;const int N 1e3 5;
const char t[10][5][3] {{ X, X, X, X, ., X, X, ., X, X, ., X, X, X, X, }, { ., ., X, ., ., X, ., ., X, ., ., X, ., ., X, }, { X, X, X, ., ., X, X, X, X, X, ., ., X, X, X, }, { X, X, X, ., ., X, X, X, X, ., ., X, X, X, X, }, { X, ., X, X, ., X, X, X, X, ., ., X, ., ., X, }, { X, X, X, X, ., ., X, X, X, ., ., X, X, X, X, }, { X, X, X, X, ., ., X, X, X, X, ., X, X, X, X, }, { X, X, X, ., ., X, ., ., X, ., ., X, ., ., X, }, { X, X, X, X, ., X, X, X, X, X, ., X, X, X, X, }, { X, X, X, X, ., X, X, X, X, ., ., X, X, X, X, }};int n;
int offset;
string str;
char s[5][N];void printNum(int x)
{for (int i 0; i 5; i){for (int j 0; j 3; j){s[i][offset j] t[x][i][j];}}offset 3;
}void printLine()
{for (int i 0; i 5; i){s[i][offset] .;}offset;
}int main()
{cin n;cin str;offset 0;for (int i 0; i n; i){if (i){printLine();}printNum(str[i] - 0);}// cout offset endl;for (int i 0; i 5; i){for (int j 0; j offset; j){putchar(s[i][j]);}putchar(\n);}return 0;
}