1 条题解

  • 0
    @ 2026-2-15 19:12:26
    #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
    上传者