hoj 1138

来源:互联网 发布:linux将文件夹打包 编辑:程序博客网 时间:2024/05/22 08:04
http://acm.hit.edu.cn/hoj/problem/view?id=1138
#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>using namespace std;int s ,n ,len;char digit[10];int dig[5][20];void drawline(int s,int n){    for(inti = 0;i <s+2; i++)       switch (n){          case 1:              if(i && i!= s+1)                 printf("-");              else                 printf("");              break;          case 2:              printf("");              break;          case 3:              if(i && i!= s+1)                 printf("");              else                 printf("|");              break;          case 4:              if(i)                 printf("");              else                 printf("|");              break;          case 5:              if(i != s+1)                 printf("");              else                 printf("|");              break;                        default:              break;       }}void getdig(char digit[]){    for(inti = 0;i <len;i++){       if(digit[i]== '0'){          dig[0][i] = 1;          dig[1][i] = 3;          dig[2][i] = 2;          dig[3][i] = 3;          dig[4][i] = 1;       }       if(digit[i]== '1'){          dig[0][i] = 2;          dig[1][i] = 5;          dig[2][i] = 2;          dig[3][i] = 5;          dig[4][i] = 2;       }       if(digit[i]== '2'){          dig[0][i] = 1;          dig[1][i] = 5;          dig[2][i] = 1;          dig[3][i] = 4;          dig[4][i] = 1;       }       if(digit[i]== '3'){          dig[0][i] = 1;          dig[1][i] = 5;          dig[2][i] = 1;          dig[3][i] = 5;          dig[4][i] = 1;       }       if(digit[i]== '4'){          dig[0][i] = 2;          dig[1][i] = 3;          dig[2][i] = 1;          dig[3][i] = 5;          dig[4][i] = 2;       }       if(digit[i]== '5'){          dig[0][i] = 1;          dig[1][i] = 4;          dig[2][i] = 1;          dig[3][i] = 5;          dig[4][i] = 1;       }       if(digit[i]== '6'){          dig[0][i] = 1;          dig[1][i] = 4;          dig[2][i] = 1;          dig[3][i] = 3;          dig[4][i] = 1;       }       if(digit[i]== '7'){          dig[0][i] = 1;          dig[1][i] = 5;          dig[2][i] = 2;          dig[3][i] = 5;          dig[4][i] = 2;       }       if(digit[i]== '8'){          dig[0][i] = 1;          dig[1][i] = 3;          dig[2][i] = 1;          dig[3][i] = 3;          dig[4][i] = 1;       }       if(digit[i]== '9'){          dig[0][i] = 1;          dig[1][i] = 3;          dig[2][i] = 1;          dig[3][i] = 5;          dig[4][i] = 1;       }    }    }void draw(){    int l;    for(intii = 0;ii <5; ii++){       l = 1;       if(ii ==1 || ii == 3)           l =s;       for(intk = 0;k <l;k++){          for(int jj = 0;jj < len; jj++){              drawline(s, dig[ii][jj]);              if(jj != len -1)                 printf("");           }          printf("\n");       }    }    printf("\n");}int main(){    while(scanf("%d%s",&s,digit)){       if(s ==0&& !strcmp("0",digit)) break;       len =strlen(digit);       for(inti = 0;i <20;i++)          memset(dig[i],0,sizeof(dig[i]));       getdig(digit);       draw();    }    return 0;}


0 0