A friend of yours has just bought a new computer. Before this, the most powerful machine he ever used was a pocket calculator. He is a little disappointed because he liked the LCD display of his calculator more than the screen on his new computer! To make him happy, write a program that prints numbers in LCD display style.
The input file contains several lines, one for each number to be displayed. Each line contains integers s and n, where n is the number to be displayed ( 0n99, 999, 999) and s is the size in which it shall be displayed ( 1s10). The input will be terminated by a line containing two zeros, which should not be processed.
Print the numbers specified in the input file in an LCD display-style using s ``-'' signs for the horizontal segments and s ``|'' signs for the vertical ones. Each digit occupies exactly s + 2 columns and 2s + 3 rows. Be sure to fill all the white space occupied by the digits with blanks, including the last digit. There must be exactly one column of blanks between two digits.
Output a blank line after each number. You will find an example of each digit in the sample output below.
2 12345
3 67890
0 0
-- -- --
| | | | | |
| | | | | |
-- -- -- --
| | | | |
| | | | |
-- -- --
--- --- --- --- ---
| | | | | | | |
| | | | | | | |
| | | | | | | |
--- --- ---
| | | | | | | |
| | | | | | | |
| | | | | | | |
--- --- --- ---
#include <iostream>
using namespace std;
int display[10][7];
void init ()
{
display[0][0]=display[0][1]=display[0][2]=display[0][4]=display[0][5]=display[0][6]=1;
display[1][2]=display[1][5] = 1;
display[2][0]=display[2][2]=display[2][3]=display[2][4]=display[2][6]=1;
display[3][0]=display[3][2]=display[3][3]=display[3][5]=display[3][6]=1;
display[4][1]=display[4][2]=display[4][3]=display[4][5]=1;
display[5][0]=display[5][1]=display[5][3]=display[5][5]=display[5][6]=1;
display[6][0]=display[6][1]=display[6][3]=display[6][4]=display[6][5]=display[6][6]=1;
display[7][0]=display[7][2]=display[7][5]=1;
display[8][0]=display[8][1]=display[8][2]=display[8][3]=display[8][4]=display[8][5]=display[8][6]=1;
display[9][0]=display[9][1]=display[9][2]=display[9][3]=display[9][5]=display[9][6]=1;
}
int fun(int row)
{
if(row == 1)
return 0;
if(row == 2)
return 1;
if(row ==3)
return 3;
if(row == 4)
return 4;
if(row == 5)
return 6;
}
void work(int s,int row,int n)
{
char temp[10],c;
int len,i,j,ans,k;
itoa(n,temp,10);
len = strlen(temp);
if(row %2 ==1)
{
ans = fun(row);
//printf(" ");
for(i = 0; i < len ; i ++)
{
printf(" ");
//if(temp[i]-'0' != 1)
//{
for(j = 0 ; j < s; j ++)
{
if(display[temp[i]-'0'][ans]==1)
printf("-");
else printf(" ");
}
//}
printf(" %c",(i == len-1)?'\n':' ');
}
}
else if(row %2== 0)
{
ans = fun(row);
for(i = 0; i < s ; i ++)
{
for(j = 0 ; j < len; j ++)
{
if(display[temp[j]-'0'][ans]==1)
printf("|");
else printf(" ");
//if(temp[j]-'0' != 1)
//{
for(k = 0; k < s ; k ++)
printf(" ");
// for(j = 0 ; j < len; j ++)
// {
if(display[temp[j]-'0'][ans+1]==1)
printf("|");
else printf(" ");
//}
if(j != len-1) printf(" ");
}
// }
printf("\n");
}
}
}
void solve(int s,int n)
{
for(int i = 1; i <= 5; i ++)work(s,i,n);
}
int main()
{
//freopen("in.txt","r",stdin);
int s,n;
init();
while(scanf("%d%d",&s,&n),s||n)
{
solve(s,n);
}
return 0;
}