P5731 蛇形方阵
题目描述
给出一个不大于 9 的正整数 n,输出 n×n 的蛇形方阵。
从左上角填上 1 开始,顺时针方向依次填入数字,如同样例所示。注意每个数字有都会占用 3 个字符,前面使用空格补齐。
输入格式
无
输出格式
无
题解
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
scan.close();
int [][]numb = new int [n][n];
int count = 1;
int x=0,y=0;
numb[0][0] = 1;
while(count<n*n) { //count等于n*n时退出循环
while(y+1<n && numb[x][y+1]==0) { //向右
numb[x][++y] = ++count;
}
while(x+1<n && numb[x+1][y]==0) { //向下
numb[++x][y] = ++count;
}
while(y-1>=0 && numb[x][y-1]==0) { //向左
numb[x][--y] = ++count;
}
while(x-1>=0 && numb[x-1][y]==0) { //向上
numb[--x][y] = ++count;
}
}
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
System.out.printf("%3d",numb[i][j]);
}
System.out.println();
}
}
}