将数字表示成计算器显示的形式。
一个计算器显示的数字由8笔画构成,因此记录每个数字(0-9)在每个笔画对应的形式。
#include<stdio.h>
#include<string.h>
//记录每个数字的笔画
char n1[11]="- -- -----";
char n2[11]="| ||| ||";
char n3[11]="||||| |||";
char n4[11]=" ----- --";
char n5[11]="| | | | ";
char n6[11]="|| |||||||";
char n7[11]="- -- -- --";
int main()
{
int s;
char a[10];
int b[10];
int len;
while(scanf("%d %s",&s,a))
{
if(s==0 && a[0]=='0')
break;
len=strlen(a);
int k=0;
for(int i=0;i<len;i++)
{
int c=a[i]-'0';
b[k++]=c;
}
for(int i=0;i<s*2+3;i++)
{
if(i==0)
{
for(int j=0;j<len;j++)
{
if(j>0) printf(" ");
int c=b[j];
printf(" ");
for(int k=0;k<s;k++) printf("%c",n1[c]);
printf(" ");
}
printf("\n");
}else if(i<s+1)
{
for(int j=0;j<len;j++)
{
if(j>0) printf(" ");
int c=b[j];
printf("%c",n2[c]);
for(int k=0;k<s;k++) printf(" ");
printf("%c",n3[c]);
}
printf("\n");
}else if(i==s+1)
{
for(int j=0;j<len;j++)
{
if(j>0) printf(" ");
int c=b[j];
printf(" ");
for(int k=0;k<s;k++) printf("%c",n4[c]);
printf(" ");
}
printf("\n");
}else if(i<s*2+2)
{
for(int j=0;j<len;j++)
{
if(j>0) printf(" ");
int c=b[j];
printf("%c",n5[c]);
for(int k=0;k<s;k++) printf(" ");
printf("%c",n6[c]);
}
printf("\n");
}else{
for(int j=0;j<len;j++)
{
if(j>0) printf(" ");
int c=b[j];
printf(" ");
for(int k=0;k<s;k++) printf("%c",n7[c]);
printf(" ");
}
printf("\n");
}
}
printf("\n");
}
return 0;
}