1 条题解

  • 0
    @ 2026-10-18 18:33:47

    G3014 [GESP202412 三级] 打印数字 题解

    知识点:二维数组、字符串、图形输出。

    解题思路

    把数字0到3的5×5点阵预存为字符串数组。按行输出,每一行依次拼接所有输入数字对应的这一行图案。

    为什么正确

    每个数字的5行模板固定,按行横向拼接得到题目要求的并排显示。

    易错点

    该题仅涉及题面给定的0到3;数字之间不额外插入空格或空列。

    复杂度

    时间O(L),输出常数为25L;空间O(L)。

    参考代码(C++17)

    #include<bits/stdc++.h>
    
    using namespace std;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        string s;
        cin>>s;
        vector<vector<string>>p= {
            {
                ".....",".***.",".***.",".***.","....."
            }
            , {
                "****.","****.","****.","****.","****."
            }
            , {
                ".....","****.",".....",".****","....."
            }
            , {
                ".....","****.",".....","****.","....."
            }
        }
        ;
        for(int i=0;i<5;i++) {
            for(char c:s)cout<<p[c-'0'][i];
            cout<<"\n";
        }
    }
    

    说明

    本题解为配套教学整理,非官方题解。复杂度按本页参考实现计算,题库使用8个自行生成的测试点。

    • 1

    信息

    ID
    682
    时间
    1000ms
    内存
    512MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者