高质量题解|A75682.若隐若现的矩形
2026-02-13 12:39:48
发布于:河北
22阅读
0回复
0点赞
解题思路
首先需要判断 d 的值是 0 还是 1 ,0 为空心、1 为实心
实心的很好实现,就是我们输出长方形的那样:外部(有 i 的循环)1 ~ a,内部(有 j 的循环)1 ~ b
难点就在于实心,但观察一遍就会发现:这个空心的图形其实就是上面 b 个 c ,中间左边 a 个 c 、右边 a 个 c,最后一行 吧 b 个 c。这样我们就理清楚了,一共 3 个循环
上面和下面的循环就是从 1 遍历到 b ,一直输出 c ,最后加上换行
中间的先输出一个 c ,然后遍历输出空格( " " ),最后再输出 c
但是需要注意,因为我们两边都输出了 c ,所以空格的长度应该是遍历到 b 再减 2 (竖列同理也应该减 2 )
代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b,d;
char c;
cin >> a >> b >> c >> d;
if(d == 0){
for(int i = 1;i <= b;i++){
cout << c;
}
cout << endl;
for(int i = 1;i <= a - 2;i++){
cout << c;
for(int j = 1;j <= b - 2;j++){
cout << " ";
}
cout << c << endl;
}
for(int i = 1;i <= b;i++){
cout << c;
}
cout << endl;
}else{
for(int i = 1;i <= a;i++){
for(int j = 1;j <= b;j++){
cout << c;
}
cout << endl;
}
}
return 0;
}
这里空空如也








有帮助,赞一个