P1538 迎春舞会之数字舞蹈

题目背景

HNSDFZ的同学们为了庆祝春节,准备排练一场舞会。

题目描述

在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列。

为了配合每年的倒计时,同学们决定排出——“数字舞蹈”。顾名思义就是所有人一起排成若干个数字 -___-||||  更为创新的是,每个人都是趴在地上,保证横竖。

现在给出数字及其要求摆出的大小,请你编程,模拟同学们的优美姿态。

输入输出格式

输入格式:

 

第一行为k。k表示要摆出数字的大小。

第二行为全部由数字组成的字符串,即要摆出的几个数字。

 

输出格式:

 

按题目要求输出。

 

输入输出样例

输入样例#1:
2
1234567890
输出样例#1:
      --   --        --   --   --   --   --   -- 
   |    |    | |  | |    |       | |  | |  | |  |
   |    |    | |  | |    |       | |  | |  | |  |
      --   --   --   --   --        --   --      
   | |       |    |    | |  |    | |  |    | |  |
   | |       |    |    | |  |    | |  |    | |  |
      --   --        --   --        --   --   -- 

说明

每个数字之前有1个空格,所有数字全部对齐。

k<=30,s的长度不超过255

建议大家直接输出,不要保存。

如果对于大小和k有疑问,请自行理解。

 

找规律。。。

模拟。。。、

  1 #include<iostream>
  2 #include<cstdio>
  3 #include<cstring>
  4 #include<cmath>
  5 using namespace std;
  6 char a[438];
  7 void read(int & n)
  8 {
  9     char c='+';int x=0;
 10     while(c<'0'||c>'9')
 11     c=getchar();
 12     while(c>='0'&&c<='9')
 13     {
 14         x=x*10+(c-48);
 15         c=getchar();
 16     }
 17     n=x;
 18 }
 19 void kong()
 20 {printf(" ");}
 21 void heng()
 22 {printf("-");}
 23 void shu()
 24 {printf("|");}
 25 int main()
 26 {
 27     int n;
 28     read(n);
 29     scanf("%s",a);
 30     int la=strlen(a);
 31     for(int i=0;i<strlen(a);i++)
 32     {
 33         kong();
 34         if(a[i]=='1'||a[i]=='4')
 35         {
 36             for(int k=1;k<=n;k++)
 37             kong();
 38         }
 39         else
 40         {
 41             for(int k=1;k<=n;k++)
 42             heng();
 43         }
 44         kong();
 45         kong();
 46     }
 47     printf("\n");
 48     for(int l=1;l<=n;l++)
 49     {
 50         for(int i=0;i<la;i++)
 51         {
 52             if(a[i]=='1'||a[i]=='2'||a[i]=='3'||a[i]=='7')
 53             {
 54                 for(int k=1;k<=n+1;k++)
 55                 kong();
 56                 shu();
 57             }
 58                 
 59             else if(a[i]=='5'||a[i]=='6')
 60             {
 61                 shu();
 62                 for(int k=1;k<=n+1;k++)
 63                 kong();
 64             }
 65             else
 66             {
 67                 shu();
 68                 for(int k=1;k<=n;k++)
 69                 kong();
 70                 shu();
 71             }
 72             kong();
 73         }
 74         printf("\n");
 75     }
 76     for(int i=0;i<strlen(a);i++)
 77     {
 78         kong();
 79         if(a[i]=='1'||a[i]=='7'||a[i]=='0')
 80         {
 81             for(int k=1;k<=n;k++)
 82             kong();
 83         }
 84         else
 85         {
 86             for(int k=1;k<=n;k++)
 87             heng();
 88         }
 89         kong();
 90         kong();
 91     }
 92     printf("\n");
 93     for(int l=1;l<=n;l++)
 94     {
 95         for(int i=0;i<la;i++)
 96         {
 97             if(a[i]=='1'||a[i]=='3'||a[i]=='4'||a[i]=='5'||a[i]=='7'||a[i]=='9')
 98             {
 99                 for(int k=1;k<=n+1;k++)
100                 kong();
101                 shu();
102             }
103                 
104             else if(a[i]=='6'||a[i]=='8'||a[i]=='0')
105             {
106                 
107                 shu();
108                 for(int k=1;k<=n;k++)
109                 kong();
110                 shu();
111             }
112             else
113             {
114                 shu();
115                 for(int k=1;k<=n+1;k++)
116                 kong();
117             }
118             kong();
119         }
120         printf("\n");
121     }
122     for(int i=0;i<strlen(a);i++)
123     {
124         kong();
125         if(a[i]=='1'||a[i]=='7'||a[i]=='4')
126         {
127             for(int k=1;k<=n;k++)
128             kong();
129         }
130         else
131         {
132             for(int k=1;k<=n;k++)
133             heng();
134         }
135         kong();
136         kong();
137     }
138     return 0;
139 }

 

posted @ 2017-06-20 10:36  自为风月马前卒  阅读(429)  评论(0编辑  收藏  举报

Contact with me