Time Limit: 1 Sec Memory Limit: 32 MB
Submit: 4406 Solved: 2290
[Submit][Status]
你的朋友刚买了一台新电脑,他以前用过的最强大的计算工具是一台袖珍计算器。现在,看着自己的新电脑,他有点失望,因为他更喜欢计算器上的LC显示器。所以,你决定写一个LC显示风格的程序帮他在电脑上显示数字。
输入包括若干行,每一行有两个整数。输入为两个0表示结束,并且此行不被处理。
每行输入的两个整数s和n,满足1<=s<=10且0<=n<=99 999 999,其中n是要被现实的数字,s是n应该显示的大小(放大的倍数)。
输出的数字是LC显示风格的:使用s个“-”表示水平线和s个“|”竖直线,每个数字刚好占据s+2列和2s+3行,所有没有“-”和“|”的空白处请用空格填满。并且每两个数字之间要有一列空格。
每一行输入数字对应上述一组LC显示风格输出。任意两组数字的输出之间用一个空行分割。
2 12345 3 67890 0 0
-- -- -- | | | | | | | | | | | | -- -- -- -- | | | | | | | | | | -- -- -- --- --- --- --- --- | | | | | | | | | | | | | | | | | | | | | | | | --- --- --- | | | | | | | | | | | | | | | | | | | | | | | | --- --- --- ---
#include
chara[11][6]= {"14041","03030","13121","13131","04130","12131","12141","13030","14141","14131"};
voidprints(charc,intn)
{
while(n--)putchar(c);
}
intmain()
{
intk=2;
chars[20];
intfirst=1;
while(scanf("%d%s",&k,s)==2&&(k||s[0]!='0'))
{
if(!first)printf("\n");elsefirst=0;
for(inti=0; i<5; i++)
{
intt=1;
for(intj=0; j
{
for(intn=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(' ');
}
}
elseif(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);
}
elseif(a[s[n]-'0'][i]=='3')
{
prints(' ',k+1);
putchar('|');
}
elseif(a[s[n]-'0'][i]=='4')
{
putchar('|');
prints(' ',k);
putchar('|');
}
if(s[n+1]!=0)putchar(' ');
}
}
if(t)putchar('\n');
}
}
}
return0;
}