题解:洛谷 P5725 【深基4.习8】求三角形

【题目来源】

洛谷:P5725 【深基4.习8】求三角形 - 洛谷

【题目描述】

模仿例题,打印出不同方向的正方形,然后打印三角形矩阵。中间有个空行。

【输入】

输入矩阵的规模,不超过 \(9\)

【输出】

输出矩形和正方形

【输入样例】

4

【输出样例】

01020304
05060708
09101112
13141516

      01
    0203
  040506
07080910

【算法标签】

《洛谷 P5725 求三角形》 #模拟#

【代码详解】

#include <bits/stdc++.h>  // 包含标准库头文件(万能头文件)
using namespace std;      // 使用标准命名空间

/**
 * 主函数 - 程序入口
 * @return 程序执行状态码(0表示成功)
 */
int main()
{
    int n;               // 定义变量:矩阵的维度
    int mark = 0;        // 定义变量:当前数字计数器
  
    cin >> n;            // 输入矩阵维度n
  
    // 第一部分:打印n×n的数字矩阵
    for (int i = 1; i <= n; i++) 
    {
        for (int j = 1; j <= n; j++) 
        {
            mark++;               // 数字递增
            if (mark < 10)        // 数字小于10时补零
                cout << 0;
            cout << mark;         // 输出当前数字
        }
        cout << endl;             // 每行结束换行
    }
  
    cout << endl;                 // 两个图形之间空一行
  
    // 第二部分:打印数字金字塔
    mark = 1;                     // 重置计数器
    for (int i = 1; i <= n; i++) 
    {
        // 打印前导空格(用于右对齐)
        for (int j = 1; j <= n - i; j++) 
        {
            cout << "  ";         // 每个数字占2位,所以空格也是2位
        }
      
        // 打印当前行的数字
        for (int j = 1; j <= i; j++) 
        {
            if (mark < 10)        // 数字小于10时补零
                cout << 0;
            cout << mark;         // 输出当前数字
            mark++;               // 数字递增
        }
        cout << endl;             // 每行结束换行
    }
  
    return 0;                     // 程序正常结束
}

【输出样例】

01020304
05060708
09101112
13141516

      01
    0203
  040506
07080910
posted @ 2026-02-16 15:24  团爸讲算法  阅读(1)  评论(0)    收藏  举报