思路:循环输出,注意边界控制
import java.util.Scanner;
public class ch2_8_1求解n阶螺旋矩阵问题 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
while(n!=0) {
print(n);
n=in.nextInt();
}
}
private static void print(int n) {
// TODO Auto-generated method stub
int a[][]=new int[n][n];
int num=1;
int i=0,j=0;
while(num<=n*n) {
while(j<n&&a[i][j]==0)
a[i][j++]=num++;
j--;i++;
while(i<n&&a[i][j]==0)
a[i++][j]=num++;
i--;j--;
while(j>=0&&a[i][j]==0)
a[i][j--]=num++;
j++;i--;
while(i>=0&&a[i][j]==0)
a[i--][j]=num++;
i++;j++;
}
for(int m=0;m<n;m++) {
for(int k=0;k<n;k++) {
System.out.print(a[m][k]+" ");
}
System.out.println();
}
}
}