欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2025/3/17 编程问答 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 迎春舞会之数字舞蹈(洛谷-P1538) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目描述

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

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

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

输入输出格式

输入格式:

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

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

输出格式:

按题目要求输出。

输入输出样例

输入样例#1:

2
1234567890

输出样例#1:

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

思路:

  • 用一个字符数组保存0~9的摆法
  • 每个数字是用最多7根线摆出,枚举7次
  • 一共可以分成打印横线、打印竖线两种情况,横线的是第0、3、6次,竖线的是第1、2、4、5次
  • 在处理竖线第1、4次,顺便将2、5次解决,因此第2、5次跳过即可
  • 源代码

    #include <bits/stdc++.h> using namespace std; int main() {string map[10]={"-|| ||-"," | | ","- |-| -","- |- |-"," ||- | ","-| - |-","-| -||-","- | | ","-||-||-","-||- |-"};//用字符串数组存储0~9的摆法string str;int k;int i,j,t,l;cin>>k>>str;//输入数字大小与字符串for(i=0;i<7;i++)//每个数字最多由7个摆出,枚举7次,逐个判断是否打印{if(i==2||i==5)//打印竖线是第1、2、4、5个,在处理1、4的时候顺便处理2、5,因此在2、5跳过continue;if(i==0||i==3||i==6)//打印横线是第0、3、6个{for(j=0;j<str.size();j++){cout<<" ";for(t=0;t<k;t++)//以数字大小k为基准,打印k次cout<<map[str[j]-48][i];cout<<" ";}cout<<endl;}else//打印竖线是第1、4个{for(j=0;j<k;j++)//以数字大小k为基准,打印k次{for(t=0;t<str.size();t++){cout<<map[str[t]-48][i];//第1、4行for (l=0;l<k;l++)cout<<" ";cout<<map[str[t]-48][i+1]<<" ";//第2、5行}cout<<endl;}}}return 0; }

    总结

    以上是生活随笔为你收集整理的迎春舞会之数字舞蹈(洛谷-P1538)的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。