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.
    
  • 相关阅读:
    golang中的左值VS右值
    golang指针接收者和值接收者方法调用笔记
    go中如果想要实现别人写的接口,如何保证确实实现了那个接口而不是错过了什么?
    在windows中给git修改默认的编辑器为sublime
    git config 选项
    json包中的Marshal&Unmarshal 文档译本
    go的database/sql库中db.Exce()
    go中导入包的几种方式
    机器学习之分类和聚类的区别
    TP5.0学习笔记
  • 原文地址:https://www.cnblogs.com/zyx-crying/p/9319514.html
Copyright © 2011-2022 走看看