要求的结果输出为:
please input the number:
6
1 2 3 4 5 6
20 21 22 23 24 7
19 32 33 34 25 8
18 31 36 35 26 9
17 30 29 28 27 10
16 15 14 13 12 11
实现的源代码如下:
import java.util.Scanner;
public class Metrics {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("please input the number:"+"\n");
int number = sc.nextInt();
int x,y;
int[][] numberMatric = new int[number][number];
int num = numberMatric[x = 0][y = 0] = 1;
while(num < number*number){
//move to the right direction...
while(y+1 < number && numberMatric[x][y+1] == 0){
numberMatric[x][++y] = ++num;
}
//move to the down direction...
while(x+1<number && numberMatric[x+1][y] == 0){
numberMatric[++x][y] = ++num;
}
//move to the left direction...
while(y-1>=0 && numberMatric[x][y-1] == 0){
numberMatric[x][--y] = ++num;
}
//move to the up direction...
while(x-1>=0 && numberMatric[x-1][y] == 0){
numberMatric[--x][y] = ++num;
}
}
//output the result...
for(x = 0;x < number;x++){
for(y = 0;y < number;y++){
System.out.printf("%4d",numberMatric[x][y]);
}
System.out.println();
}
}
}