洛谷-P1538 迎春舞会之数字舞蹈

洛谷-P1538 迎春舞会之数字舞蹈

原题链接:https://www.luogu.com.cn/problem/P1538


题目背景

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

题目描述

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

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

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

输入格式

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

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

输出格式

按题目要求输出。

输入输出样例

输入 #1

2
1234567890

输出 #1

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

说明/提示

除了第一个数字之外,每个数字之前有1个空格,所有数字全部对齐。

k<=30,s的长度不超过255

建议大家直接输出,不要保存。

如果对于大小和k有疑问,请自行理解。

C++代码

#include <iostream>
#include <cstring>
using namespace std;

int main(){
    int k,p,q,i,j;
    string s,m[10]={"-|| ||-","  |  | ","- |-| -",
    "- |- |-"," ||- | ",    "-| - |-","-| -||-",
    "- |  | ","-||-||-","-||- |-"};
    cin>>k>>s;
    for(p=0;p<7;++p){
        if(p==2||p==5) continue;
        if(p%3==0){
            for(i=0;i<s.size();++i){
                cout<<' ';
                for(j=0;j<k;++j){
                    cout<<m[s[i]-48][p];
                }
                cout<<"  ";
            }
            cout<<endl;
        }else{
            for(q=0;q<k;++q){
                for(i=0;i<s.size();++i){
                    cout<<m[s[i]-48][p];
                    for(j=0;j<k;++j){
                        cout<<' ';
                    }
                    cout<<m[s[i]-48][p+1]<<' ';
                }
                cout<<endl;
            }
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/yuzec/p/12820718.html