zoukankan      html  css  js  c++  java
  • 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;
    }



  • 相关阅读:
    java添加后台缓存
    Acunetix WVS安全测试软件使用教程(入门级)
    spring mvc + ajax上传文件,页面局部刷新
    github新手使用教程
    Junit使用方法
    反射(动态代理)
    TCP--文件上传
    网络编程--UDP通讯
    线程实现计时器,多线程间通信
    序列流
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563772.html
Copyright © 2011-2022 走看看