☰
GESP 2025年3月 真题题解 | 等差矩阵(循环结构)
2026/10/18 5:21:08 网站建设 项目流程

记录一道 GESP 2025年3月 的循环结构真题。这类题在考试里属于必得分项,核心就那几行代码,关键是别在小细节上丢分。

题目来源:ACGO A46091 | 2025年3月 二级
赛事场次:2025年3月 二级

一、题目信息

题目名称:等差矩阵

赛事场次:2025年3月 二级

难度定位:二级

涉及知识点:循环嵌套

题目链接:https://www.acgo.cn/problemset/info/46091

坑点(无数人 WA 的核心)

  • 内外层循环变量的独立性;总执行次数为各层次数之积。
  • 二维题目注意下标从 0 还是 1 开始,边界要留够。

题意简述

小A想构造一个n行m列的矩阵,使得矩阵的每一行与每一列均是等差数列。小A发现,在矩阵的第i行第j列填入整数i×j,得到的矩阵能满足要求。你能帮小A输出这个矩阵吗?

前置知识

下面先把需要的基础知识理一遍,不熟悉的朋友可以跟着看,熟悉的直接跳过。

for 循环的标准写法:for(int i=1;i<=n;i++)表示 i 从 1 递增到 n,每次循环体执行完 i 自动加 1。竞赛中我们习惯从 1 开始计数,这样可以避免下标越界的麻烦。

while 循环:适合循环次数不确定的场景,只要条件成立就一直执行,写的时候一定要确保循环变量会被修改,否则会死循环。

二、思路分析

先看清楚题目要我们做什么

把题目读两遍,我们提取出关键信息:输入是什么、要输出什么、有哪些约束条件。这道题考查的是循环结构,属于这类题里比较基础的一道,把题目要求一步步翻译成代码逻辑就能解决。

我的思考过程

读完题之后,我的第一反应是这样的:要求 n 行 m 列的矩阵,每行每列都成等差数列。按题目提示在第 i 行第 j 列填入 i×j 即可满足(每行公差为 i,每列公差为 j)。

需要说明的是,上面这个思路是把题目要求直译成代码得到的,没有用到什么高级技巧。对于这类基础题,读准题意加写对边界比追求巧妙解法更重要,因为考试里这种题是必须拿满分的。

三、完整代码 + 逐行注释

#include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; // 读入 for (int i = 1; i <= n; i++) { // 遍历 for (int j = 1; j <= m; j++) { // 遍历 if (j > 1) cout << " "; // 输出 cout << i * j; // 输出 } cout << "\n"; // 输出 } return 0; }

四、代码分段拆解

代码不长,但每一段都有讲究,我们分段拆开看。

第一步:引入头文件

#include <iostream> using namespace std;

#include <iostream>提供输入输出功能,using namespace std;让我们能直接写cin、cout而不用加前缀。这两行是几乎所有 C++ 程序的开头,照写即可。

第二步:读入数据

cin >> n >> m;

注意变量的类型要能装下题目的数据。数据可能超过 21 亿时要改用long long。

第三步:核心处理逻辑

for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) {

这一段是整道题的关键,也是循环结构的体现。看循环的三个要素:从哪里开始、什么时候结束、每次怎么变化。这三个要素任何一个写错,结果都会不对。

第四步:按要求输出

if (j > 1) cout << " "; cout << i * j;

输出格式必须和题目要求的完全一致。很多同学算法完全正确却因为少了一个换行或者空格多寡不对而 WA,这种分丢得最可惜。

五、实例模拟

把样例代进去手动模拟一遍,思路会更清晰。

以题目的第一组样例为例:

样例输入

3 4

样例输出

1 2 3 4 2 4 6 8 3 6 9 12

把这份输入代进代码,程序会先把数据依次读入,然后进入循环逐个判断,把满足条件的值累积起来,最后按格式输出。建议你对照着代码在纸上走一遍前两次循环,确认自己对每一步的理解都和程序一致。

六、踩坑总结

下面是做这道题时最容易出错的地方,对照自己的代码检查一下:

  1. 变量类型选错:虽然本题范围不大,但养成习惯——凡是不确定范围时,累加变量一律用long long,成本为零但能保命。
  2. 输出格式不符:题目要求输出几行就输出几行,行末换行、数字之间的空格都要严格对齐,算法对了但格式错了同样判 WA,这种分丢得最冤。
  3. 特殊情况没特判:把最小数据、最大数据、答案恰好等于 0 的情况各测一遍。特别是边界输入,出题人最喜欢在这里设陷阱。

七、知识点拓展

这题虽然简单,但背后的方法可以推广,总结如下:

  • 本题考查循环结构的基本写法,这类题在考试中属于必得分项,要练到能默写。
  • 写完代码后建议自己造几组边界数据测试,特别是最小值和最大值。
  • 同一知识点在不同场次反复出现,把这道题的写法吃透,后面遇到同类题可以直接套用。

八、适用人群

如果你已经掌握循环结构的基本写法,这道题可以用来巩固手感。

如果这篇题解对你有帮助,欢迎点赞收藏。后续我会继续按场次整理 2025年3月 二级 的真题,关注我可以第一时间看到更新。有更好的写法也欢迎在评论区交流。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询