题解:洛谷 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
浙公网安备 33010602011771号