蛇形填充数组

这篇博客讲述了期末程序考试中的一道题目——蛇形填充数组。博主详细阐述了填充的规律,对于奇数位置,填充方向是从左下到右上;对于偶数位置,是从右上到左下。通过k作为计数器,区分两个三角形部分,并展示了如何根据k的奇偶性确定行和列的值。最后,博主探讨了是否能将两个填充部分合并以及尝试寻找更简洁的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

期末程序考试结束了,其中一道是这个题

简单写一下规律:

以10为例

奇数 左下->右上

偶数 右上->左下

分成两个部分://1.左上三角形部分,编号为1~n

//2.右下三角形部分,编号n+1~2n-1

用k计数,从1开始,用i表示赋值,从1开始

第一部分:

k为奇:循环kk=k-1;kk>=0;kk--

num[kk][k-1-kk]=i;

k为偶数:

kk=k-1;kk>=0;kk--

num[kk][k-1-kk]=i;

第二部分:(顺着加过去)

k为奇数:

kk=n-1,kk>=k-n;kk--;

num[kk][k-kk-1]-=i;

k为偶数:

kk=n-1,kk>=k-n;kk--;

nunm[k-kk-1][kk]=i;

之前想过很多,行列的关系,其实就是第一部分,行数+列数=k-1;

第二部分,行数+列数=k-1;

都是k-1!

而且奇数偶数也只是换了一下行列 罢了

甚至,是不是可以将两个部分合在一起呢?(简化不了多少,也就是在奇数(偶数)里面在多一个判断)

(可不可以在第一部分看完之后,第二部分从n^2看呢?)

总之就是找规律蛮简单

后续会有一元三次方程求解

告辞

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值