P1538 迎春舞会之数字舞蹈(C++)

题目背景

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

题目描述

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

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

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

输入格式

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

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

输出格式

按题目要求输出。

输入输出样例

输入 #1
2
1234567890

输出 #1

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

说明/提示

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

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

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

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

思路

一行一行输出,注意空格和k值,纯粹的简单模拟问题。

源码

#include<bits/stdc++.h>
using namespace std;

string a[10] = { " - ", "   ", " - ", " - ", "   ", " - ", " - ", " - ", " - ", " - " };
string b[10] = { "| |", "  |", "  |","  |", "| |", "|  ", "|  ", "  |", "| |", "| |"}; 
string c[10] = { "   ", "   ", " - ", " - ", " - ", " - ", " - ", "   "," - ", " - " };
string d[10] = { "| |","  |","|  ", "  |", "  |", "  |", "| |", "  |", "| |", "  |" };
string e[10] = { " - ", "   ", " - ", " - ", "   ", " - ", " - ", "   ", " - ", " - " };
int main()
{
	int k;
	string s;
	cin >> k >> s;
	for (int i = 0; i < s.size(); i++)//第一行
	{
		cout << a[s[i]-'0'][0];
		for (int j = 0; j < k; j++)
			cout << a[s[i]-'0'][1];
		cout << a[s[i] - '0'][2]<<" ";
	}
	cout << endl;
	for (int z = 0; z < k; z++)
	{
		for (int i = 0; i < s.size(); i++)//第2/3行
		{
			cout << b[s[i]-'0'][0];
			for (int j = 0; j < k; j++)
				cout << b[s[i]-'0'][1];
			cout << b[s[i]-'0'][2]<<" ";
		}
		cout << endl;
	}
	for (int i = 0; i < s.size(); i++)//第4行
	{
		cout << c[s[i] - '0'][0];
		for (int j = 0; j < k; j++)
			cout << c[s[i] - '0'][1];
		cout << c[s[i] - '0'][2]<<" ";
	}
	cout << endl;
	for (int z = 0; z < k; z++)
	{
		for (int i = 0; i < s.size(); i++)//第5/6行
		{
			cout << d[s[i] - '0'][0];
			for (int j = 0; j < k; j++)
				cout << d[s[i] - '0'][1];
			cout << d[s[i] - '0'][2]<<" ";
		}
		cout << endl;
	}
	for (int i = 0; i < s.size(); i++)//第7行
	{
		cout << e[s[i] - '0'][0];
		for (int j = 0; j < k; j++)
			cout << e[s[i] - '0'][1];
		cout << e[s[i] - '0'][2]<<" ";
	}
	return 0;
}
发布了121 篇原创文章 · 获赞 28 · 访问量 7155
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览