Problem H: 液晶显示

Problem H: 液晶显示

Time Limit: 1 Sec   Memory Limit: 32 MB
Submit: 3052   Solved: 1477
[ Submit][ Status][ Web Board]

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 123453 678900 0

Sample Output

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

HINT

Append Code


#include <stdio.h>

#include <string.h>
void out_put(char ch,int n)
{
    int i;
    for(i=0;i<n;i++)
        putchar(ch);
}
char a[12][10]={"25152","14141","24232","24242","15241","23242","23252","24141","25252","25242","25152"};
int main()
{
    int s,n,i,j,k;  char str[20];  int flag=1;
    while(scanf("%d %s",&s,str)&&(s||str[0]!='0')){
        if(flag==0)  printf("\n");  else flag=0;
          for(i=0;i<5;i++)
            {
              int flag1=1;
              for(k=0;k<s;k++)
              {
                  for(j=0;str[j]!=0;j++)
                    {
            if(a[str[j]-'0'][i]=='1')
             {   if(k==0){
                    out_put(' ',s+2);
                    if(str[j+1]!=0)  putchar(' ');
                    }
                      else flag1=0;
             }
                  else if(a[str[j]-'0'][i]=='2')
                    {
                        if(k==0){
                          putchar(' ');
                      out_put('-',s);
                      putchar(' ');
                      if(str[j+1]!=0)  putchar(' ');
                      }
                      else flag1=0;
                  }
                  else
                  {
                      if(a[str[j]-'0'][i]=='3')
                      {
                          putchar('|');
                          out_put(' ',s+1);
                         if(str[j+1]!=0)  putchar(' ');
                      }

                    else if(a[str[j]-'0'][i]=='4')
                  {
                      out_put(' ',s+1);
                      putchar('|');
                      if(str[j+1]!=0)  putchar(' ');
                  }
                    else if(a[str[j]-'0'][i]=='5')
                  {
                      putchar('|');
                      out_put(' ',s);
                      putchar('|');
                      if(str[j+1]!=0)  putchar(' ');
                  }
                }
              }
              if(flag1==1)  printf("\n");
           }
        }
    }
}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值