洛谷——1538 迎春舞会之数字舞蹈

题目背景

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

题目描述

 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列。
 为了配合每年的倒计时,同学们决定排出——“数字舞蹈”。顾名思义就是所有人一起排成若干个数字 -___-|||| 更为创新的是,每个人都是趴在地上,保证横竖。
 现在给出数字及其要求摆出的大小,请你编程,模拟同学们的优美姿态。

输入格式:

第一行为k。k表示要摆出数字的大小。
第二行为全部由数字组成的字符串,即要摆出的几个数字。

输出格式:

按题目要求输出。

题解:

   --   --        --   --   --   --   --   -- 
|    |    | |  | |    |       | |  | |  | |  |
|    |    | |  | |    |       | |  | |  | |  |
   --   --   --   --   --        --   --      
| |       |    |    | |  |    | |  |    | |  |
| |       |    |    | |  |    | |  |    | |  |
   --   --        --   --        --   --   -- 

仔细观察,这十个数字由五个部分组成:
1:‘0-0’
2:‘|  ’
3:‘  |’
4:‘| |’
5:‘   ’
然后第一、三、五行由1和5组成,第二、四行有2、3、4组成。然后就自己啪啪啪把。

代码:

var
  k,l,i,j:longint;
  ss:ansistring;
  s:string;
function try1:string;
begin
  try1:=' ';
  for j:=1 to k do
    try1:=try1+'-';
  try1:=try1+'  ';
end;

function try2:string;
begin
  try2:='|';
  for j:=1 to k+2 do
    try2:=try2+' ';
end;

function try3:string;
begin
  try3:='';
  for j:=1 to k+1 do
    try3:=try3+' ';
  try3:=try3+'| ';
end;

function try4:string;
begin
  try4:='|';
  for j:=1 to k do
    try4:=try4+' ';
  try4:=try4+'| ';
end;

function try5:string;
begin
  try5:='';
  for j:=1 to k+3 do
    try5:=try5+' ';
end;

begin
  readln(k);
  readln(s);
  l:=length(s);
  for i:=1 to l do
    case s[i] of
      '0','2','3','5','6','7','8','9':write(try1);
      '1','4':write(try5);
    end;

  writeln; ss:='';
  for i:=1 to l do
    case s[i] of
      '5','6':ss:=ss+try2;
      '1','2','3','7':ss:=ss+try3;
      '0','4','8','9':ss:=ss+try4;
    end;
  for i:=1 to k do
    writeln(ss);

  for i:=1 to l do
    case s[i] of
      '2','3','4','5','6','8','9':write(try1);
      '0','1','7':write(try5);
    end;

  writeln; ss:='';
  for i:=1 to l do
    case s[i] of
      '2':ss:=ss+try2;
      '1','3','4','5','7','9':ss:=ss+try3;
      '0','6','8':ss:=ss+try4;
    end;
  for i:=1 to k do
    writeln(ss);

  for i:=1 to l do
    case s[i] of
      '0','2','3','5','6','8','9':write(try1);
      '1','4','7':write(try5);
    end;
end.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值