目录

🍋题目描述

对于一个 n 行 m 列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵。
例如,一个 4 行 5 列的螺旋矩阵如下:
1 2 3 4 5
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8
请问,一个 30 行 30 列的螺旋矩阵,第 20 行第 20 列的值是多少?

🍋思路

这道题是填空题。

但是当我第一次做的时候,我不想写代码。
我直接用Excel,拉着来做。
同学们也要尝试着用excel啊

  • 最终结果是819。
  • Java习题练习:超大玉螺旋丸_蓝桥杯

至于具体的代码的话,等解析视频出了,之后再填上把
就是模拟题。一定要认真看代码

🍋源代码

public class Main{
static int [][]a=new int [50][50];
static int n=30;

static boolean inb(int x,int y) {
return 0<=x&&x<n&&0<=y&&y<n;
}
public static void main(String args[]) {
int dx[]= {0,1,0,-1};
int dy[]= {1,0,-1,0};
int x=0,y=0,d=0;
a[x][y]=1;
for(int i=2;i<=n*n;i++) {
int nx=x+dx[d];
int ny=y+dy[d];
if(inb(nx,ny)&&a[nx][ny]==0) {//判断
x=nx;
y=ny;
a[x][y]=i;
}
else {
d=(d+1)%4;
nx=x+dx[d];//是对x的变化,不是对nx的变化。
ny=y+dy[d];//是对y的变化,不是对ny的变化。
x=nx;
y=ny;
a[x][y]=i;
}
}
System.out.println(a[19][19]);
}
}


Java习题练习:超大玉螺旋丸_eclipse_02