Advertisement

【GESP真题解析】第 17 集 GESP 二级 2024 年 9 月编程题 2:小杨的 N 字矩阵

阅读量:
image.png

很高兴见到您!我叫Mösh tread...(等等)

这次为大家带来深度解析的小杨同学带来的N型矩阵问题。

题目链接

洛谷链接:B4037 小杨的 N 字矩阵

image.png

一、完成输入

按照输入格式的要求,在一行变量m中定义其数据范围为 3\le m \le 49 ,其中m属于int类型,并采用int类型。

复制代码
    int m;
    cin>>m;
    
    
    cpp

输入完成后,我们开始分析题意。

二、分析题意

按照题目所述的小杨打算构造一个 m\times m 的 N 字矩阵,在该矩阵中:主对角线以及第一列和第 m 列由半角加号 + 组成;其余位置则由半角减号 - 填充。

使用两重循环,即可实现 m \times m 的矩阵,先输出减号。

复制代码
    for(int i=1;i<=m;i++)
    {
    	for(int j=1;j<=m;j++)
    	{
    		cout<<'-';
    	}
    	cout<<endl;
    }
    
    
    cpp

这样就可以全部输出减号。

image.png

按照题目所述,在矩阵中主对角线上的元素均为加号;其行列索引值相一致。

image.png

所以做特殊判断即可。

复制代码
    for(int i=1;i<=m;i++)
    {
    	for(int j=1;j<=m;j++)
    	{
    		if(i==j)
    		{
    			cout<<'+';
    		}
    		else
    		{
    			cout<<'-';
    		}
    	}
    	cout<<endl;
    }
    
    
    cpp
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-19/T0tUB4WmNyl3pQJa9jOCixA5nFKV.png)

第 1 列和第 m 列也是输出加号,所以附加一个条件。

复制代码
    if(i==j||j==1||j==m)
    {
    	cout<<'+';
    }
    else
    {
    	cout<<'-';
    }
    
    
    cpp

输入样例输入的数据,进行验证。

image.png

没有问题,到网站提交评测。

三、验证数据

提交到网站中,通过!

image.png

四、完整代码

完整代码如下:

复制代码
    #include<iostream>
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int m;
    	cin>>m;
    for(int i=1;i<=m;i++)
    	{
    		for(int j=1;j<=m;j++)
    		{
    			if(i==j||j==1||j==m)
    			{
    				cout<<'+';
    			}
    			else
    			{
    				cout<<'-';
    			}
    		}
    		cout<<endl;
    	}
    }
    
    
    cpp
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-19/R6fIYAx3XpCzKmLBQyaqhZVF4H9e.png)

五、技巧总结

这道题在模拟构造类问题中具有代表性,在学习过程中是一个典型的二维图形问题。通过根据特定位置进行判断后输出相应的字符,在二维图形问题中属于基础练习类型。

题目的关键在于找到判断规律:

使用两层 for 循环分别遍历行和列,通过 if 判断位置关系输出对应字符。

复制代码
    if (i == j || j == 1 || j == m) 
    {
    cout << '+';
    } 
    else 
    {
    cout << '-';
    }
    
    
    cpp

(1)i == j 是主对角线(左上角到右下角);
(2)j == 1 是第一列;
(3)j == m 是最后一列。

如果对你有帮助,感谢点赞关注收藏哦~

全部评论 (0)

还没有任何评论哟~