| Result | TIME Limit | MEMORY Limit | Run Times | AC Times | JUDGE |
|---|---|---|---|---|---|
| 3s | 8192K | 2238 | 631 | Standard |
Input
The input contains several lines, one for each number to be displayed. Each line contains two integers s, n (1 <= s <= 10, 0 <= n <= 99 999 999), where n is the number to be displayed and s is the size in which it shall be displayed.The input file will be terminated by a line containing two zeros. This line should not be processed.
Output
Output the numbers given in the input file in an LC-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, also for the last digit.) There has to be exactly one column of blanks between two digits.Output a blank line after each number. (You will find a sample of each digit in the sample output.)
Sample Input
2 12345 3 67890 0 0
Sample Output
-- -- --
| | | | | |
| | | | | |
-- -- -- --
| | | | |
| | | | |
-- -- --
--- --- --- --- ---
| | | | | | | |
| | | | | | | |
| | | | | | | |
--- --- ---
| | | | | | | |
| | | | | | | |
| | | | | | | |
--- --- --- ---
#include <iostream>
#include <cstdio>
using namespace std;
void out(int s,char p[])
{
for(int i=0;p[i]!='\0';i++)//最顶端
{
if(i!=0)cout<<" ";
switch(p[i])
{
case '1':
case '4':
for(int j=1;j<=s+2;j++)
cout<<" ";
break;
case '2':
case '3':
case '5':
case '6':
case '7':
case '8':
case '9':
case '0':
cout<<" ";
for(int j=1;j<=s;j++)
cout<<"-";
cout<<" ";
break;
}
}
cout<<endl;
for(int i=1;i<=s;i++)//第二部分
{
for(int j=0;p[j]!='\0';j++)
{
if(j!=0)cout<<" ";
switch(p[j])
{
case '0':
case '4':
case '8':
case '9':
cout<<"|";
for(int t=1;t<=s;t++)
cout<<" ";
cout<<"|";
break;
case '1':
case '2':
case '3':
case '7':
for(int t=0;t<=s;t++)
cout<<" ";
cout<<"|";
break;
case '5':
case '6':
cout<<"|";
for(int t=0;t<=s;t++)
cout<<" ";
break;
}
}
cout<<endl;
}
for(int i=0;p[i]!='\0';i++)//第三部分
{
if(i!=0)cout<<" ";
switch(p[i])
{
case '0':
case '1':
case '7':
for(int t=1;t<=s+2;t++)
cout<<" ";
break;
default :
cout<<" ";
for(int t=1;t<=s;t++)
cout<<"-";
cout<<" ";
break;
}
}
cout<<endl;
for(int i=1;i<=s;i++)//第四部分
{
for(int j=0;p[j]!='\0';j++)
{
if(j!=0)cout<<" ";
switch(p[j])
{
case '1':
case '3':
case '4':
case '5':
case '7':
case '9':
for(int t=0;t<=s;t++)
cout<<" ";
cout<<"|";
break;
case '2':
cout<<"|";
for(int t=1;t<=s+1;t++)
cout<<" ";
break;
default :
cout<<"|";
for(int t=1;t<=s;t++)
cout<<" ";
cout<<"|";
break;
}
}
cout<<endl;
}
for(int i=0;p[i]!='\0';i++)
{
if(i!=0)cout<<" ";
switch(p[i])
{
case '1':
case '4':
case '7':
for(int t=1;t<=s+2;t++)
cout<<" ";
break;
default :
cout<<" ";
for(int t=1;t<=s;t++)
cout<<"-";
cout<<" ";
break;
}
}
cout<<endl;
}
int main()
{
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
int n;
char p[10];
bool temp=false;
while(scanf("%d%s",&n,p)==2)
{
//cout<<n<<" "<<p<<endl;
if(temp)cout<<endl;
temp=true;
if(n==0&&p[0]=='0')break;
out(n,p);
}
return 0;
}
本博客介绍如何使用编程技巧模拟LC显示屏显示数字。详细解释了输入处理、数字显示风格设定以及输出格式化,包括空白填充和间距处理。
175

被折叠的 条评论
为什么被折叠?



