题目描述
在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列。
为了配合每年的倒计时,同学们决定排出——“数字舞蹈”。顾名思义就是所有人一起排成若干个数字 -___-|||| 更为创新的是,每个人都是趴在地上,保证横竖。
现在给出数字及其要求摆出的大小,请你编程,模拟同学们的优美姿态。
输入输出格式
输入格式:
第一行为k。k表示要摆出数字的大小。
第二行为全部由数字组成的字符串,即要摆出的几个数字。
输出格式:
按题目要求输出。
输入输出样例
输入样例#1:
2
1234567890
输出样例#1:
-- -- -- -- -- -- -- --
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
– – – – – – –
| | | | | | | | | | | | |
| | | | | | | | | | | | |
– – – – – – –
————————————————
思路:一共可以分成两种情况,打印横线和打印竖线。横线的是后是0、3、6这三位,刚好可以对3取余来判断。
竖线打印的时候要一下打印两条竖线,所以处理1,4的时候把2、5也解决了。
#include
using namespace std;
int main()
{
int k;
string s,m[10]={"-|| ||-"," | | ","- |-| -",
"- |- |-"," ||- | ", "-| - |-","-| -||-",
"- | | ","-||-||-","-||- |-"};
cin>>k>>s;
for (int p=0;p<7;p++){
if (p==2 || p==5) continue;
if (p%3==0){
for (int i=0;i<s.size();i++){
cout<<' ';
for (int j=0;j<k;j++){
cout<<m[s[i]-48][p];
}
cout<<" ";
}
cout<<endl;
}else{
for(int q=0;q<k;q++){
for (int i=0;i<s.size();i++){
cout<<m[s[i]-48][p];
for (int j=0;j<k;j++){
cout<<' ';
}
cout<<m[s[i]-48][p+1]<<' ';
}
cout<<endl;
}
}
}
return 0;
}