蓝桥练习(JAVA)——蛇形填数

题目描述

如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 …
3 5 8 14 …
4 9 13 …
10 12 …
11 …

容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的数是多少?

答案

761

解题

思路
直接草稿纸计算. 观察矩阵, 从左下到右上的斜线, 第一道斜线上有一个数,第二道斜线上有两个数, 第n道斜线上有n个数.

其中, 数字从1开始加一, 第n道斜线的第n个数为n(1+n)/2.

每一斜线的数字增大方向, 一行变一次, 单数行为左下到右上, 双数行为右上到左下.

求矩阵中第20行第20列的数, 在斜线的角度上看,是第39斜线的第20个数字.

39是奇数,第39斜线的数字方向是左下到右上, 先求第20行第20列所在的斜线的前面总共有多少个数,再加上20就是答案.

第38道斜线的第38个数为 38*(1+38)/2 = 741
741+20 = 761

你可能感兴趣的:(蓝桥练习题)