The input file will be terminated by a line containing two zeros. This line should not be processed.
Output a blank line after each number. (You will find a sample of each digit in the sample output.)
![](http://hi.csdn.net/attachment/201110/13/0_1318497171ZJxj.gif)
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n,h,w,len,i,j;
string s;
while(cin>>n>>s)
{
if(n==0 && s=="0")
break;
h=n*2+3;
w=n+2;
len=s.size();
for(i=1;i<=h;i++)
{
for(j=0;j<len;j++)
{
if( ( (s[j]=='2'||s[j]=='3'||s[j]=='5'||s[j]=='6'||s[j]=='8'||s[j]=='9')&&(i==1||i==h||i==(h+1)/2) )
|| ( s[j]=='4'&&i==(h+1)/2 ) || ( s[j]=='7'&&i==1 ) || ( s[j]=='0'&&(i==1||i==h) ) )
cout<<' '+string(w-2,'-')+' '; // 横
else
if( ( s[j]=='1'&&(i==1||i==h||i==(h+1)/2) ) || ( s[j]=='4'&&(i==1||i==h) )
|| ( s[j]=='7'&&(i==h||i==(h+1)/2) ) || ( s[j]=='0'&&i==(h+1)/2 ) )
cout<<string(w,' '); // 横
else
if( (s[j]=='1'||s[j]=='3'||s[j]=='7')&&(i!=1&&i!=(h+1)/2&&i!=h)
|| ( s[j]=='2'&&(i>1&&i<(h+1)/2) ) || ((s[j]=='5'||s[j]=='9'||s[j]=='4')&&(i<h&&i>(h+1)/2)) )
cout<<string(w-1,' ')+'|'; // 竖 右
else
if( (s[j]=='2'&&(i<h&&i>(h+1)/2)) || ((s[j]=='5'||s[j]=='6')&&(i>1&&i<(h+1)/2)) )
cout<<'|'+string(w-1,' '); // 竖 左
else
cout<<'|'+string(w-2,' ')+'|'; // 竖 左右
if(j!=len-1)
cout<<" "; // 两数字间空格
}
cout<<endl;
}
cout<<endl;
}
return 0;
}