import java.util.Scanner;
public class Test_lou {
static int count=1;
static int temp=0;
public static void main(String[]args) {
System.out.println("请输入想要的螺旋值:");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[][]arr=new int[n][n];
int m=0; //记录循环的次数,就是一共有多少圈
if(n%2==1) {
m=(n-1)/2;
}else {
m=n/2-1;
}
text(n, arr,m);
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
private static void text(int n, int[][] arr,int m) {
if(m<0)return;
int k=temp; //每次循环左边角标需要进行递增 第一次[0][0] [1][1]
//int g=n;
for(int i=k;i<n;i++) {
arr[k][i]=count++;
}
for(int i=k+1;i<n;i++) {
arr[i][n-1]=count++;
}
for(int i=n-2;i>=k;i--) {
arr[n-1][i]=count++;
}
for(int i=n-2;i>=k+1;i--) {
arr[i][k]=count++;
}
temp++;
text(n-1,arr,m-1);
}
}
|