写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
答案:
package test7;
import java.util.Scanner;
public class Test7 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[][] arr = new int[n][n];
int l = 0,r=n,s=0,x=n;
int k = 1;
while(k<=n*n){
for(int i=l;i<r;i++){
arr[s][i]=k;
k++;
}
s++;
for(int i=s;i<x;i++){
arr[i][r-1]=k;
k++;
}
r--;
for(int i=r-1;i>=l;i--){
arr[x-1][i]=k;
k++;
}
x--;
for(int i=x-1;i>=s;i--){
arr[i][l]=k;
k++;
}
l++;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}
|
|