这里是蓝桥杯历年的题目,欢迎关注公众号“放码过来呀”
题目名称:蛇形填数
题目描述:
如下图所示,小明用从1开始的正整数“蛇形”填充无限大的矩阵。容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20行第20列的数是多少?

题目答案:761
题目分析:
将图形顺时针旋转45度,我们可以发现20行20列应该位于第39层的中间一个(也就是38层的最后一个数+39层的中间之前个数)

题目代码:
(1+38)*38/2 :这个算的是第48行最后一个数的大小,通过观察每行的个数是一个单调递增的数列(比如第一行1个数、第二行2个数、第三行3个数、第四行4个数、第N行n个数......)而位数与数字大小是一个值(比如:第一个数是1,第二个数是2,第三个数是3,第N个数是n......)
所以这个表达式是48行最后一位数的大小
(39+1)/2:这个算的是49行从第一位到中间一位的位数
答案:(1+38)*38/2+(39+1)/2 =761
思路整理:
这道题考察的是数学思维,当然编程也能做,要考虑顺序,每行个数。用计算的方式用考虑顺序,直接求出上一层的的最后一位,加上本层的位数(只针对这题,别的题还要单独考虑)
本文解析了一道名为“蛇形填数”的蓝桥杯竞赛题目,介绍了如何利用数学方法快速定位无限大矩阵中特定位置的数值,并给出了详细的计算步骤。
1306

被折叠的 条评论
为什么被折叠?



