假设地图时一个n行m列的方格地图,地图每个格子*代表一个宝藏,比如2行2列的地图如下:
- **
- **
要构建的房子如下:
输入格式:一行两个整数n,m(0<n,m≤50),分别表示地图行数和列数
按照题目要求给出地图对应的房子
#include<iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=2*n+1;i++) //当输入行数为n时,实际上一共会有2*n+1行,故循环条件为2*n+1
{
if(i%2==1&&i!=2*n+1) //这里时确保当前行数不是最后一行,因为最后一行是不需要再输入回车符
{
for(int j=1;j<=2*m+1;j++) //当输入列数为m时,实际上会有2*m+1列
{
if(j%2==1)
cout<<'+'; //在奇数行且奇数列时,输出+号
else
cout<<'-'; //在奇数行且偶数列时,输出-号
}
cout<<endl;
}
else if(i%2==1&&i==2*n+1) //这里是输出的是最后一行,其实前面那个条件已经不重要了,最后一行一定是奇数行,故有没有i%2==1这个条件都可以
{
for(int j=1;j<=2*m+1;j++)
{
if(j%2==1)
cout<<'+';
else
cout<<'-';
}
} //注意,这里是最后一行,故没有回车符
else //判断是否为偶数行
{
for(int j=1;j<=2*m+1;j++)
{
if(j%2==1) //偶数行奇数列输出|
cout<<'|';
else
cout<<'*'; //偶数行偶数列输出*
}
cout<<endl; //偶数行永远是最后一行,故永远有回车
}
}
return 0;
}
注意:我记得蓝桥杯好像对于最后一行是否有回车是有要求的,还是注意一下,以防万一