p1064

迎春舞会之数字舞蹈 迎春舞会 系列  

 

 背景 Background 

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

  

 描述 Description  

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

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

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

 

 输入格式 Input Format 

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

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

 

 输出格式 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 

 

 

posted @ 2010-04-02 14:19  jesonpeng  阅读(179)  评论(0编辑  收藏  举报