• POJ1102 LC-Display【打印图案】


    问题链接POJ1102 LC-Display

    问题描述参见上文。

    问题分析

    首先需要一个字模数组,然后进行放大。

    每行有多个字,同时需要考虑放大后行数会增加。

    需要注意,每组数据后有一个空行,每个数字后有一个空格,每一行后面多一个空格(特殊的地方,需要注意)。

    程序说明

    这个问题与《UVALive5642 UVa706 HDU1332 LC-Display》是同一问题,然而测试数据有所不同。这个程序的输出的每行后面有一个空格,其他则不允许。

    参考链接UVALive5642 UVa706 HDU1332 LC-Display



    AC的C++语言程序:

    /* POJ1102 LC-Display */
    
    #include <iostream>
    #include <cstdio>
    
    using namespace std;
    
    string typematrix[10][5] = {
        {
            " - ",
            "| |",
            "   ",
            "| |",
            " - "
        },
        {
            "   ",
            "  |",
            "   ",
            "  |",
            "   "
        },
        {
            " - ",
            "  |",
            " - ",
            "|  ",
            " - "
        },
        {
            " - ",
            "  |",
            " - ",
            "  |",
            " - "
        },
        {
            "   ",
            "| |",
            " - ",
            "  |",
            "   "
        },
        {
            " - ",
            "|  ",
            " - ",
            "  |",
            " - "
        },
        {
            " - ",
            "|  ",
            " - ",
            "| |",
            " - "
        },
        {
            " - ",
            "  |",
            "   ",
            "  |",
            "   "
        },
        {
            " - ",
            "| |",
            " - ",
            "| |",
            " - "
        },
        {
            " - ",
            "| |",
            " - ",
            "  |",
            " - "
        }
    };
    
    int getrow(int row, int multiple)
    {
        if(row == 0)
            return 0;   // 第1行
        else if(row < multiple + 1)
            return 1;   // 第2行
        else if(row == multiple + 1)
            return 2;   // 第3行
        else if(row == 2 * multiple + 2)
            return 4;   // 第5行
        else
            return 3;   // 第4行
    }
    
    void zoom(string& s, int n)
    {
        printf("%c",s[0]);
        for(int i=0; i<n; i++) {
            printf("%c", s[1]);
        }
        printf("%c", s[2]);
    }
    
    int main()
    {
        int n;
        string s;
    
        while(cin >> n >> s && n) {
            for(int i=0; i<2*n+3; i++) {            // 行控制
                for(int j=0; j<(int)s.length(); j++) {     // 列控制
                    zoom(typematrix[s[j] - '0'][getrow(i, n)], n);
                    cout << " ";
                }
                cout << endl;
            }
            cout << endl;
        }
    
        return 0;
    }



  • 相关阅读:
    每日日报
    每日日报
    每日日报
    线上问题定位---jstack
    8.18Java入门--->第二十二节(ObjectOutputStream、ObjectInputStream)
    8.17Java入门--->第二十一节(IO流)
    Mybatis--->第六节一对多和多对一
    8.14Java入门--->第二十节
    8.13Java入门--->第十九节(Map嵌套)
    Java学习
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563772.html
Copyright © 2020-2023  润新知