题目描述
给定一个正整数 n,请打印一个空心的正方形,它的边界由 *
构成,每条边都恰好有 n 个字符。
输入格式
单个正整数表示 n。
输出格式
输出一个边界为星号、内部空心的正方形。
数据范围
- 3≤n≤50。
样例数据
输入:
5
输出:
*****
* *
* *
* *
*****
主要思想
|---当i=1或i=n——输出'*'
|---当j=1或j=n并且i≠1并且i≠n——输出'*'
开始——输入n——for(从i=1至n)——for(从j=1至n)--|---当j≠1并且j≠n并且i≠1并且i≠n——输出' '
|
|
输出换行(当j的循环结束时)
代码实现
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= n;j++) {
if (i == 1 || i == n) {
cout << '*';
} else {
if (j == 1 || j == n) {
cout << '*';
} else {
cout << ' ';
}
}
}
cout << endl;
}
return 0;
}