题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 ...
3 5 8 14 ...
4 9 13 ...
10 12 ...
11 ...
...
容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的数是多少?
题目解析
1、题目所提的从 1 开始的正整数“蛇形”填充无限大的矩阵是如下图一样的走向,像蛇形的走位
2、我们也可以以这样的规律,往下多写几行找找规律。
1 2 6 7 15 16 28 29 45 46...
3 5 8 14 17 27 30 44 47...
4 9 13 18 26 31 43 48...
10 12 19 25 32 42 49...
11 20 24 33 41 50...
21 23 34 40 51...
22 35 39 52...
36 38 53...
37 54...
55...
1)接着标出矩阵第二行第二列的5,与其他的行数与列数相同的所对应的数。
2)可以看出有:
矩阵第一行第一列:1
矩阵第二行第二列:5
矩阵第三行第三列:13
矩阵第四行第四列:25
矩阵第五行第五列:41
3)对1,5,13,25,41这几个数找规律
5 - 1 = 4
13 - 5 =8 = 4*2
25 - 13 = 12 = 4*3
41 - 25 = 16 = 4*4
4)可见这几个数之间的规律与 4 息息相关,或许我们可以换一种写法
1 + 4*1 = 5
5 + 4*2 = 13
13 + 4*3 = 25
25 + 4*4 = 41
5)而第二、三、四条最前面的5,13,25也可以引用上一行的结果
注;由于md文档中两个“*”星号自动加粗了,所以为了方便观看,在式子里我只留了一个星号,把其他的改成 “x ”号了。
1 + 4*1 = 5
1 + 4x1 + 4*2 = 13
1 + 4x1 + 4x2 + 4*3 = 25
1 + 4x1 + 4x2 + 4x3 + 4*4 = 41
6)由此可见,规律就是:
第n行第n列的数 = 1 + (4 x1 + 4x2 +4x3 +……+4*n)
参考代码
package Java.practice.homework;
import java.util.Scanner;
public class Homework02
{
public static void main(String[] args)
{
int num = 20;
int sum = 1;//因为规律 1 + (4 x1 + 4x2 +4x3 +……+4*n)前有个1,所以要从 1 加起
for(int i = 0;i < num;i++)
{
sum += i * 4 ;
}
System.out.println(sum);
}
}