题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
如下图所示,小明用从 11 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 ...
3 5 8 14 ...
4 9 13 ...
10 12 ...
11 ...
...
容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20? 行第 20 列的数是多少?
运行限制
方法一:
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int count = 1;
for(int i = 1; i <= 20; i++){
count = count + 4*(i - 1);
}
System.out.println(count);
scan.close();
}
}
详情:
方法一相对来说较为简单,根据图可知,对角线有规律为:
1 5 13 ...
1+4*1=? 5+4*2=? 13
所以,大家都知道怎么写了吧~~
方法二:
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int n = 20;
int a; //a为斜着看的行数
a = 2*n - 1;
int b = a - 1; //b为前a-1行的行数
int c = 0; //c为前b行中的最大数
int count;
for(int i = 1; i <= b; i++){
c = c + i;
}
count = c + n;
System.out.println(count);
}
}
?详情:
?方法二不瞒大家说,刚开始还有点懵嘞
方法二的重点是要斜着来看哈!
1? ?
2? ?3
4? ?5? ?6
7? ?8? ?9? ?10
11? 12? ?13? ?14? ? 15
由此可见,要求第20行20列的数,即为求第(20*2)-1=39行的数
则前38行的数末为:1+2+3+4...+38=(1+38)*38/2=39*19
由5=3+2
? ? 13=10+3得
第20行第20列为:39*19+20
|