p1064
迎春舞会之数字舞蹈 迎春舞会 系列
背景 Background
HNSDFZ的同学们为了庆祝春节,准备排练一场舞会。
描述 Description
在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列。
为了配合每年的倒计时,同学们决定排出——“数字舞蹈”。顾名思义就是所有人一起排成若干个数字 -___-|||| 更为创新的是,每个人都是趴在地上,保证横竖。
现在给出数字及其要求摆出的大小,请你编程,模拟同学们的优美姿态。
输入格式 Input Format
第一行为k。k表示要摆出数字的大小。
第二行为全部由数字组成的字符串,即要摆出的几个数字。
输出格式 Output Format
按题目要求输出。
样例输入 Sample Input
2
1234567890
样例输出 Sample Output
注意:最前面没有空格
分析:把每个数字分成五个部分,数组常量记录每个数字的情况
一行一行打印
代码
1 Program Vijos_P1064;
2 Const
3 {把每个数字从上到下分成5部分,,“-”表示横里面有“ ”表示没有,“d”表示竖里面有2个|,“r“表示表示竖里面右边有|,”l“表示竖里面左边有|}
4 p: Array ['0'..'9'] Of String[5]=
5 ('-d d-', ' r r ', '-r-l-', '-r-r-', ' d-r ', '-l-r-', '-l-d-', '-r r ', '-d-d-', '-d-r-');
6 Var
7 i, j, k: Byte; s: String;
8 a: Array [1..5] Of AnsiString;
9 Procedure Add(o:String);
10 Begin
11 For j:=1 To 5 Do
12 Case o[j] Of
13 '-': a[j]:=a[j]+' '+StringOfChar('-', k)+' ';
14 'l': a[j]:=a[j]+'|'+StringOfChar(' ', k+2);
15 'r': a[j]:=a[j]+StringOfChar(' ', k+1)+'| ';
16 'd': a[j]:=a[j]+'|'+StringOfChar(' ', k)+'| ';
17 ' ': a[j]:=a[j]+StringOfChar(' ', k+3)
18 End
19 End;
20 Begin
21 assign(input,'T.txt');
22 assign(output,'A.txt');
23 reset(input);
24 rewrite(output);
25 ReadLn(k); ReadLn(s);
26 For i:=1 To Length(s) Do Add(p[s[i]]); {每个数字去加到数组a里面}
27 For i:=1 To 5 Do Delete(a[i], Length(a[i]), 1);
28 WriteLn(a[1]); {打印第1部分}
29 For i:=1 To k Do WriteLn(a[2]); {打印第二部分,一下类推}
30 WriteLn(a[3]);
31 For i:=1 To k Do WriteLn(a[4]);
32 Write(a[5]);
33
34 close(input);
35 close(output);
36 End.
37
2 Const
3 {把每个数字从上到下分成5部分,,“-”表示横里面有“ ”表示没有,“d”表示竖里面有2个|,“r“表示表示竖里面右边有|,”l“表示竖里面左边有|}
4 p: Array ['0'..'9'] Of String[5]=
5 ('-d d-', ' r r ', '-r-l-', '-r-r-', ' d-r ', '-l-r-', '-l-d-', '-r r ', '-d-d-', '-d-r-');
6 Var
7 i, j, k: Byte; s: String;
8 a: Array [1..5] Of AnsiString;
9 Procedure Add(o:String);
10 Begin
11 For j:=1 To 5 Do
12 Case o[j] Of
13 '-': a[j]:=a[j]+' '+StringOfChar('-', k)+' ';
14 'l': a[j]:=a[j]+'|'+StringOfChar(' ', k+2);
15 'r': a[j]:=a[j]+StringOfChar(' ', k+1)+'| ';
16 'd': a[j]:=a[j]+'|'+StringOfChar(' ', k)+'| ';
17 ' ': a[j]:=a[j]+StringOfChar(' ', k+3)
18 End
19 End;
20 Begin
21 assign(input,'T.txt');
22 assign(output,'A.txt');
23 reset(input);
24 rewrite(output);
25 ReadLn(k); ReadLn(s);
26 For i:=1 To Length(s) Do Add(p[s[i]]); {每个数字去加到数组a里面}
27 For i:=1 To 5 Do Delete(a[i], Length(a[i]), 1);
28 WriteLn(a[1]); {打印第1部分}
29 For i:=1 To k Do WriteLn(a[2]); {打印第二部分,一下类推}
30 WriteLn(a[3]);
31 For i:=1 To k Do WriteLn(a[4]);
32 Write(a[5]);
33
34 close(input);
35 close(output);
36 End.
37