问题描述
蒜头君有一块数码管显示屏,只能显示数字。每个数字的显示如下。每 7 个数码管用来显示一个数字。(CSDN编辑器问题,样例,例子都写在代码片里了)
-
| |
-
| |
-
每个数字对应的输出如下。
- - - - - - - -
| | | | | | | | | | | | | |
- - - - - - -
| | | | | | | | | | | | |
- - - - - - -
当然为了看起来更形象,可以把数字放大输出,比如放大两倍每个数字对应如下
-- -- -- -- -- -- -- --
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
-- -- -- -- -- -- --
| | | | | | | | | | | | |
| | | | | | | | | | | | |
-- -- -- -- -- -- --
输入格式
输入两个整数k,n(1≤k≤10,0≤n≤99999999),分别表达放大的倍数和需要输出的数字。
输出格式
输出数码管显示的数字,数字每一位之间用一列空格隔开。
样例输入
2 12345
样例输出
-- -- --
| | | | | |
| | | | | |
-- -- -- --
| | | | |
| | | | |
-- -- --
AC代码
#include <iostream>
#include <cstdio>
using namespace std;
char pic[10][5][2]={
{{'-',' '},{'|','|'},{' ',' '},{'|','|'},{'-',' '}},
{{' ',' '},{' ','|'},{' ',' '},{' ','|'},{' ',' '}},
{{'-',' '},{' ','|'},{'-',' '},{'|',' '},{'-',' '}},
{{'-',' '},{' ','|'},{'-',' '},{' ','|'},{'-',' '}},
{{' ',' '},{'|','|'},{'-',' '},{' ','|'},{' ',' '}},
{{'-',' '},{'|',' '},{'-',' '},{' ','|'},{'-',' '}},
{{'-',' '},{'|',' '},{'-',' '},{'|','|'},{'-',' '}},
{{'-',' '},{' ','|'},{' ',' '},{' ','|'},{' ',' '}},
{{'-',' '},{'|','|'},{'-',' '},{'|','|'},{'-',' '}},
{{'-',' '},{'|','|'},{'-',' '},{' ','|'},{'-',' '}},
};
int main()
{
int k;
int cnt=0;
char buf;
int n[10];
cin>>k;
getchar();
while(scanf("%c",&buf)==1&&buf!=10)
{
n[cnt]=buf-'0';
cnt++;
}
for(int m=1;m<=5;m++)
{
if(m%2==1)
{
for(int j=0;j<cnt;j++)
{ cout<<" ";
for(int i=0;i<k;i++)
cout<< pic[n[j]][m-1][0];
cout<<" ";
if(j!=cnt-1)cout<<" ";
}cout<<endl;
}
else
{ for(int h=1;h<=k;h++){
for(int j=0;j<cnt;j++)
{
char a,b;
a=pic[n[j]][m-1][0];
b=pic[n[j]][m-1][1];
cout<<a;
for(int i=0;i<k;i++)
{
cout<<" ";
}
cout<<b;
if(j!=cnt-1)cout<<" ";
}cout<<endl;
}
}
}
return 0;
}