• [山东科技大学OJ]1068 Problem H: 液晶显示


     

    Time Limit: 1 Sec  Memory Limit: 32 MB
    Submit: 4406  Solved: 2290
    [Submit][Status]

    Description

    你的朋友刚买了一台新电脑,他以前用过的最强大的计算工具是一台袖珍计算器。现在,看着自己的新电脑,他有点失望,因为他更喜欢计算器上的LC显示器。所以,你决定写一个LC显示风格的程序帮他在电脑上显示数字。

     

    Input

    输入包括若干行,每一行有两个整数。输入为两个0表示结束,并且此行不被处理。

    每行输入的两个整数s和n,满足1<=s<=10且0<=n<=99 999 999,其中n是要被现实的数字,s是n应该显示的大小(放大的倍数)。

     

    Output

    输出的数字是LC显示风格的:使用s个“-”表示水平线和s个“|”竖直线,每个数字刚好占据s+2列和2s+3行,所有没有“-”和“|”的空白处请用空格填满。并且每两个数字之间要有一列空格。

    每一行输入数字对应上述一组LC显示风格输出。任意两组数字的输出之间用一个空行分割。

     

    Sample Input

    2 12345 3 67890 0 0

    Sample Output

    -- -- -- | | | | | | | | | | | | -- -- -- -- | | | | | | | | | | -- -- -- --- --- --- --- --- | | | | | | | | | | | | | | | | | | | | | | | | --- --- --- | | | | | | | | | | | | | | | | | | | | | | | | --- --- --- ---

    HINT

     

    Append Code

    [Submit][Status]


    #include

    char a[11][6]= {"14041","03030","13121","13131","04130","12131","12141","13030","14141","14131"};

    void prints(char c,int n)

    {

        while(n--)putchar(c);

    }

    int main()

    {

        int k=2;

        char s[20];

        int first=1;

        while(scanf("%d%s",&k,s)==2&&(k||s[0]!='0'))

        {

            if(!first)printf("\n");else first=0;

            for(int i=0; i<5; i++)

            {

                int t=1;

                for(int j=0; j

                {

                    for(int n=0; s[n]!=0; n++)

                    {

                        if(a[s[n]-'0'][i]=='1')

                        {

                            if(j)  t=0;

                            else

                            {

                                putchar(' ');

                                prints('-',k);

                                putchar(' ');

                                    if(s[n+1]!=0)putchar(' ');

                            }

      

                        }

                        else if(a[s[n]-'0'][i]=='0')

                        {

                            if(j)  t=0;

                            else{

                                prints(' ',k+2);

                                if(s[n+1]!=0)putchar(' ');

                            }

                        }

                        else

                        {

                            if(a[s[n]-'0'][i]=='2')

                            {

                                putchar('|');

                                prints(' ',k+1);

                            }

                            else if(a[s[n]-'0'][i]=='3')

                            {

                                prints(' ',k+1);

                                putchar('|');

                            }

                            else if(a[s[n]-'0'][i]=='4')

                            {

                                putchar('|');

                                prints(' ',k);

                                putchar('|');

                            }

                            if(s[n+1]!=0)putchar(' ');

                        }

                    }

                    if(t)putchar('\n');

                }

            }

        }

        return 0;

    }

  • 相关阅读:
    如何使用ffmpeg转换图片格式
    LeetCode刷题---简单组(二)
    3212力扣:统计X和Y频数相等的子矩阵数量
    完全掌握Nginx的终极指南:这篇文章让你对Nginx洞悉透彻
    MySQL read 查询语句5 增强
    淘宝API关键词搜索接口调用示例
    SQL9 查找除复旦大学的用户信息
    华为mate60的发布代表着什么?有什么意义?
    MQTT代理和C# 简单连接代理 简单订阅和发送消息含测试demo
    解释一下用于WebRTC的SRTP的实时传输协议
  • 原文地址:https://blog.csdn.net/m0_73840805/article/details/127875009