TB椰程 TypeBuddy 打字搭子

显示屏

洛谷·深入浅出 · 代码 · cpp · 难度 4/5 · 共 950 字

把一串数字渲染成 3×5 点阵(5 行输出)

  • 洛谷
  • 例题

正文

// 原题:https://oj.yecheng.tv/p/1402
// 题意:3×5 点阵显示屏,给定数字位数与一串数字,输出每个数字的点阵(X 亮、. 暗),数字间一列间隔。
// 思路:用 10 个数字的 5×3 点阵字模,逐行输出:每行把各数字的对应行用单空格隔开拼接。
// 复杂度:O(n)。
// 易错点:字模要与样例完全一致(数字 1 靠右);数字之间为单列空格,行内不换行。
#include <iostream>
#include <string>
using namespace std;
string glyph[10][5] = {
    {"XXX", "X.X", "X.X", "X.X", "XXX"},
    {"..X", "..X", "..X", "..X", "..X"},
    {"XXX", "..X", "XXX", "X..", "XXX"},
    {"XXX", "..X", "XXX", "..X", "XXX"},
    {"X.X", "X.X", "XXX", "..X", "..X"},
    {"XXX", "X..", "XXX", "..X", "XXX"},
    {"XXX", "X..", "XXX", "X.X", "XXX"},
    {"XXX", "..X", "..X", "..X", "..X"},
    {"XXX", "X.X", "XXX", "X.X", "XXX"},
    {"XXX", "X.X", "XXX", "..X", "XXX"}
};
int main(){
    int n;
    string num;
    cin >> n >> num;
    for(int r = 0; r < 5; r++){
        for(int k = 0; k < n; k++){
            if(k) cout << '.';
            cout << glyph[num[k] - '0'][r];
        }
        cout << endl;
    }
    return 0;
}

洛谷·深入浅出的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK