PersonalCorpus 版 (精华区)

41685 2002-10-15 00:53:31 Accepted
1146 C++ 00:00.00 384K Big Guava


char scr[23][110];

void drawc(int s, int x, int y)
{
    for (int i=0;i<s;i++) scr[y+i][x]='|';
}
void drawr(int s, int x, int y)
{
    for (int i=0;i<s;i++) scr[y][x+i]='-';
}
void draw7(int s, int x, int type)
{
    switch (type) {
        case 1: drawc(s,x,1); break;
        case 2: drawc(s,x,s+2); break;
        case 3: drawr(s,x+1,0); break;
        case 4: drawr(s,x+1,s+1); break;
        case 5: drawr(s,x+1,s+s+2); break;
        case 6: drawc(s,x+s+1,1); break;
        case 7: drawc(s,x+s+1,s+2); break;
    }
}

void writenum(int s, int n, int x)
{
    switch (n) {
        case 1: draw7(s,x,6);draw7(s,x,7); break;
        case 2: draw7(s,x,3);draw7(s,x,6);draw7(s,x,4);draw7(s,x,2);
draw7(s,x,5); break;
        case 3: draw7(s,x,3);draw7(s,x,6);draw7(s,x,4);draw7(s,x,7);
draw7(s,x,5); break;
        case 4: draw7(s,x,1);draw7(s,x,6);draw7(s,x,4);draw7(s,x,7); 
break;
        case 5: draw7(s,x,3);draw7(s,x,1);draw7(s,x,4);draw7(s,x,7);
draw7(s,x,5); break;
        case 6: draw7(s,x,3);draw7(s,x,1);draw7(s,x,4);draw7(s,x,2);
draw7(s,x,7);draw7(s,x,5); break;
        case 7: draw7(s,x,3);draw7(s,x,6);draw7(s,x,7); break;
        case 8: draw7(s,x,1);draw7(s,x,2);draw7(s,x,3);draw7(s,x,4);
draw7(s,x,5);draw7(s,x,6);
                draw7(s,x,7);draw7(s,x,8); break;
        case 9: draw7(s,x,1);draw7(s,x,3);draw7(s,x,4);draw7(s,x,5);
draw7(s,x,6);
                draw7(s,x,7);draw7(s,x,8); break;
        case 0: draw7(s,x,1);draw7(s,x,2);draw7(s,x,3);draw7(s,x,5);
draw7(s,x,6);
                draw7(s,x,7);draw7(s,x,8); break;
    }
}
int main()
{
#ifndef ONLINE_JUDGE
    freopen("c:\\0acm\\zju\\i1146","r",stdin);
    freopen("c:\\0acm\\zju\\o1146","w",stdout);
#endif

    int i,j,k,n,s;
    char t[15];

    while (1) {
        scanf("%d%d\n",&s,&n);
        if ((s==0)&&(n==0)) break;
        sprintf(t,"%d",n);
        memset(scr,' ',sizeof(scr));
        for (i=0;t[i];i++) writenum(s,t[i]-48,(s+3)*i);
        for (i=0;i<s+s+3;i++) {
            scr[i][strlen(t)*(s+3)-1]=0;
            printf("%s\n",scr[i]);
        }
        printf("\n");
    }
}
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.284毫秒