试题 C: 蛇形填数 题解

蓝桥杯大赛软件类省赛试题C解析,主要内容涉及蛇形填数问题的Java解法。通过分析矩阵填充规律,采用二维数组模拟,以循环填充的方式找到第20行第20列的数值。文章强调理解边界条件和循环控制的重要性,提供Java代码示例,并建议深入理解这类问题的细节和技巧。
摘要由CSDN通过智能技术生成

第十一届蓝桥杯大赛软件类省赛第二场 Java 大学 B 组 题解三:试题 C: 蛇形填数

试题 C: 蛇形填数

1. 题目

直接贴原题图了
在这里插入图片描述

2. 分析

要求第20行第20列的数,在矩阵中用二维数组nums表示就是求nums[19][19]。数据规模不大,只需要模拟填充矩阵,覆盖到nums[19][19]的值就可以。观察矩阵可以看出,矩阵斜着填充,往右上、再往左下,重复这个过程,循环填充就可以。

  • 代码思路:用i、j分别标记当前要填充的坐标。大循环控制什么时候结束填充,嵌套两个内循环,一个是往右上填充,一个是往左下填充。
  • 实现细节:
    1. 往右上时,i递减,j递增。假设矩阵无限大,那么只需要判断i是否小于0这个边界条件。
    2. 往左下时,i递增,j递减。需要维护j是否小于0这个条件。
    3. 假如某个表量小于边界0,那么退出填充循环,再给该表量赋值0。

三个小细节,决定了代码的易写程度、以及代码的长度。具体的思想,看如下代码

3. 代码

答案:761

java代码

public class C {
   
	static int maxn = 1000;
	public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		int[][] nums 
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值