两种思路方式
方法一:通过坐标的形式来实现二维数组的赋值以及遍历
Scanner input = new Scanner(System.in); int len = input.nextInt(); //初始化声明二维数组 int[][] arry = new int[len][len]; //通过坐标的方式给数组赋值来实现回形数 int count=0;//初始化声明一个变量,后面用来给二维数组赋值 int maxX=len-1;//最大的x轴坐标 int maxY=len-1;//最大的y轴坐标 int minX=0;//最小的x轴坐标 int minY=0;//最下的y轴坐标 while(minX= minX; x--){ arry[maxY][x]=++count; } maxY--; for(int y = maxY; y >= minY; y--){ arry[y][minX]=++count; } minX++; } for(int i = 0; i
方法二:
Scanner input = new Scanner(System.in);
int len = input.nextInt();
int[][] arry = new int[len][len];
int s=len*len;//回形数的长度:len*len
int k=1;
int i=0;
int j=0;
//开始循环
for(int l=1;l<=s;l++){
if(k==1){
if(jarry[i].length
i++;
l--;
}
}else if(k == 2){
if(i=0 && arry[i][j] == 0){
arry[i][j--]=l;
int adfd=1;
} else{
k = 4;
i--;
j++;
l--;
}
}else if(k == 4) {
if (i >= 0 && arry[i][j] == 0) {
arry[i--][j] = l;
} else {
k = 1;
j++;
l--;
i++;
}
}
}
// 遍历
for (int m = 0; m < arry.length; m++) {
for (int n = 0; n < arry[m].length; n++) {
System.out.print(arry[m][n] + "t");
}
System.out.println();
}



