思路:
- 转化矩阵横纵坐标
1
3 2
4 5 6
10 9 8 7
11 12 13 14 15
-
转化后的矩阵,列数和之前相同,这时我们需要找到转化后的矩阵的40列的某一行即对应原矩阵的40行40列,我们只需要转化行号即可
-
继续观察规律,发现转化后的矩形,每个斜线上的元素,横纵坐标之差是固定的,而斜线上的元素对应原矩阵的行
-
那么就第40个斜边,就等于原始矩阵的40行,满足方程式 x-y=39 由于y=40 得x=79,这样只需找到转化后矩阵的arr[79][40] 即可
package 蓝桥杯;
public class 蛇型填数 {
public static void main(String[] args) {
int [][]arr=new int[100][100];
int k=1;
for (int i = 1; i <= 90; i++) {
if (i%2==0){
//偶数
for (int j = i; j >= 1; j--) {
arr[i][j]=k;
k++;
}
}else {
for (int j = 1; j <= i; j++) {
arr[i][j]=k;
k++;
}
}
}
for (int i = 1; i <= 50; i++) {
for (int j = 1; j <= 50; j++) {
System.out.print(arr[i][j]);
}
System.out.println("");
}
System.out.println("============================");
System.out.println(arr[79][40]);
}
}