【洛谷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 }