【GESP真题解析】第 19 集 GESP 二级 2025 年 3 月编程题 1:等差矩阵
大家好,我是莫小特。
这篇文章给大家分享 GESP 二级 2025 年 3 月编程题第 1 题:等差矩阵。
题目链接
洛谷链接:B4259 等差矩阵
一、完成输入
根据题意,一行,两个正整数 n,m。
n 和 m的数据范围:对于所有测试点,保证 1≤n,m≤50。
使用 int 就够了。
int y,m,d,h,k;
cin>>y>>m>>d>>h>>k;
输入部分完成后,我们来分析题目意思。
二、分析题意
根据题目描述,小 A 想构造一个 n 行 m 列的矩阵,使得矩阵的每一行与每一列均是等差数列,这个看不出什么意思,可以代入到样例输入和样例输出中。
再根据题目中说明的:在矩阵的第 i 行第 j 列填入整数 i×j,得到的矩阵能满足要求。
所以使用二维数组解决,数据范围:1≤n,m≤50
int x[55][55];
第 i 行第 j 列填入整数 i×j,转为代码:
x[i][j]=i*j;
使用 for 循环嵌套,遍历 i 和 j 的值。
for(int i=1;i<=n;i++)
{for(int j=1;j<=m;j++){x[i][j]=i*j;}
}
最后完成输出即可。
for(int i=1;i<=n;i++)
{for(int j=1;j<=m;j++){cout<<x[i][j]<<" "; } cout<<"\n";
}
三、验证数据
提交到网站中,通过!
四、完整代码
完整代码如下:
#include <iostream>
using namespace std;
int x[55][55];
int main()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){x[i][j]=i*j;}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cout<<x[i][j]<<" "; } cout<<endl;}
}