YACS(上海计算机学会竞赛平台)一星级题集——空心正方形

2023-12-26 09:38:43
题目描述

给定一个正整数 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;
}

文章来源:https://blog.csdn.net/A3024857/article/details/135212769
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。