【洛谷P1538】迎春舞会之数字舞蹈

迎春舞会之数字舞蹈

题目链接

一道奇怪的模拟题,

先将样例输出复制下来,观察观察

      --   --        --   --   --   --   --   --   ①
   |    |    | |  | |    |       | |  | |  | |  |  ②
   |    |    | |  | |    |       | |  | |  | |  |
      --   --   --   --   --        --   --        ③
   | |       |    |    | |  |    | |  |    | |  |  ④
   | |       |    |    | |  |    | |  |    | |  |  
      --   --        --   --        --   --   --   ⑤

将数字从上到下分成5个部分分别模拟

 1 //      --   --        --   --   --   --   --   -- 
 2 //   |    |    | |  | |    |       | |  | |  | |  |
 3 //   |    |    | |  | |    |       | |  | |  | |  |
 4 //      --   --   --   --   --        --   --      
 5 //   | |       |    |    | |  |    | |  |    | |  |
 6 //   | |       |    |    | |  |    | |  |    | |  |
 7 //      --   --        --   --        --   --   -- 
 8 #include<iostream>
 9 #include<cstring>
10 #include<cstdio>
11 using namespace std;
12 int k,n;
13 char s[260],s1[260],s2[260],s3[260],s4[2600];
14 int main()
15 {
16     scanf("%d%s",&k,s+1);
17     n=strlen(s+1);
18     for(int i=1;i<=k;i++){
19         s1[i]=' ';
20         s2[i]='-';
21     }
22     s1[0]=' '; s1[k+1]=' ';
23     s2[0]=' '; s2[k+1]=' ';
24     for(int i=1;i<=n;i++){
25         if(s[i]=='1'||s[i]=='4')
26          cout<<s1;
27         else cout<<s2;
28         if(i!=n) cout<<' ';
29     }
30     cout<<endl;
31     int len=strlen(s1);
32     for(int i=0;i<len;i++)
33      s3[i]=s1[i];
34     for(int i=1;i<=n;i++){
35         s3[0]=s3[k+1]=' ';
36         if(s[i]!='5'&&s[i]!='6') s3[k+1]='|';
37         if(s[i]!='1'&&s[i]!='2'&&s[i]!='3')
38          if(s[i]!='7') s3[0]='|';
39         int len1=strlen(s4),len2=strlen(s3);
40         for(int j=len1;j<=len1+len2-1;j++)
41          s4[j]=s3[j-len1];
42         if(i!=n) s4[len1+len2]=' ';
43     }
44     for(int i=1;i<=k;i++)
45      cout<<s4<<endl;
46     for(int i=1;i<=n;i++){
47         if(s[i]=='1'||s[i]=='7'||s[i]=='0')
48          cout<<s1;
49         else cout<<s2;
50         if(i!=n) cout<<' ';
51     }
52     cout<<endl;
53     int o=strlen(s4);
54     memset(s4,0,sizeof(s4));
55     for(int i=1;i<=n;i++){
56         s3[0]=s3[k+1]=' ';
57         if(s[i]!='2') s3[k+1]='|';
58         if(s[i]=='2'||s[i]=='6'||s[i]=='8'||s[i]=='0')
59          s3[0]='|';
60         int len1=strlen(s4),len2=strlen(s3);
61         for(int j=len1;j<=len1+len2-1;j++)
62          s4[j]=s3[j-len1];
63         if(i!=n) s4[len1+len2]=' ';
64     }
65     for(int i=1;i<=k;i++)
66      cout<<s4<<endl;
67     for(int i=1;i<=n;i++){
68         if(s[i]=='1'||s[i]=='4'||s[i]=='7')
69          cout<<s1;
70         else cout<<s2;
71         if(i!=n) cout<<' ';
72     }
73     return 0;
74 }

 

posted @ 2018-07-17 21:30  yjk  阅读(127)  评论(0编辑  收藏  举报