思路:用字符串存储样例五行,然后按下标查找数字
#include<bits/stdc++.h>
using namespace std;
//用字符串分别复制样例5行
//每个数的第一个下标是该数*4(因为单个字符占3列,分隔的'.'号占一列)
string s[5]={"XXX...X.XXX.XXX.X.X.XXX.XXX.XXX.XXX.XXX","X.X...X...X...X.X.X.X...X.....X.X.X.X.X","X.X...X.XXX.XXX.XXX.XXX.XXX...X.XXX.XXX","X.X...X.X.....X...X...X.X.X...X.X.X...X","XXX...X.XXX.XXX...X.XXX.XXX...X.XXX.XXX"};
string s2[5]={"","","","",""};//初始化,不写应该也行,全局变量会自动初始化
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
char ch;//一次读一个字符
cin>>ch;
int num=ch-'0';
num=num*4; //重点,每个数的第一个下标是该数*4
for(int j=0;j<5;j++)//将该数的五行存入数组
{
for(int k=num;k<num+3;k++)//用下标依次读入一行添加到字符串里
{
s2[j]+=s[j][k];//关键,一定要+=
}
if(i!=n-1)//最后一个数字结尾不加分隔符.
s2[j]+=".";
}
}
//输出
for(int i=0;i<5;i++) cout<<s2[i]<<endl;
return 0;
}