1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int main() { // [1] 定义整型变量n,存储用户输入的沙漏核心参数,沙漏总高度为2*n+1行 int n; // [2] 读取用户输入的正整数n,符合题目2<=n<=20的范围要求 cin >> n; // [3] 外层循环:遍历沙漏的每一行,i为当前行号,总共有2*n+1行 for(int i = 1 ; i <= n*2+1 ; i++) { // [4] 内层循环:遍历当前行的每一列,j为当前列号,每行总共有2*n+1列 for(int j = 1 ; j <= n*2+1 ; j++) { // [5] 核心条件判断:确定当前坐标(i,j)是否需要输出星号* // 四个有效条件分别对应:沙漏首行、沙漏末行、图案副对角线、图案主对角线 if(i == 1 || i == n * 2 + 1 || i + j == n * 2 + 2 || i == j) { // [6] 满足输出条件,打印星号*构成图案轮廓 cout << "*" ; } else { // [7] 不满足输出条件,打印空格填充图案空白区域 cout << " " ; } } // [8] 当前行所有列打印完成,换行进入下一行的绘制 cout << endl; } return 0; }
- 1
信息
- ID
- 642
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者