zoukankan      html  css  js  c++  java
  • 洛谷——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.
    
  • 相关阅读:
    C++字节对齐与位域
    使用GDB调试将符号表与程序分离后的可执行文件
    在windows上编译apr库
    使用samba共享文件夹,提供给window访问
    Linux常用命令
    使用VS2015编译xlslib库
    VS资源收藏<持续更新中>
    使用Visual Studio 2017 C++17模块(module)特性
    RMAN中format的参数
    C#的Process类的一些用法
  • 原文地址:https://www.cnblogs.com/zyx-crying/p/9319514.html
Copyright © 2011-2022 走看看