蛇形填数
题目描述
在n*n方阵里填入1,2,…,n*n,要求填成蛇形。例如n=4时方阵为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
输入
直接输入方阵的维数,即n的值。(n<=100)
样例输入
3
输出
输出结果是蛇形方阵。
样例输出
7 8 1
6 9 2
5 4 3
import java.util.Scanner;
public class Main{
public static void main(String[]args){
Scanner s=new Scanner(System.in);
int n=s.nextInt();
s.close();
int start=1;
int[][]arr=new int[n][n];
int j=n-1;
int i=0;
while(start<=n*n){
while(i<n&&arr[i][j]==0){ //向下填数
arr[i][j]=start++;
i++;
}
i--;
j--;
while(j>=0&&arr[i][j]==0){ //向左填数
arr[i][j]=start++;
j--;
}
j++;
i--;
while(i>=0&&arr[i][j]==0){ //向上填数
arr[i][j]=start++;
i--;
}
i++;
j++;
while(j<n&&arr[i][j]==0){ //向右填数
arr[i][j]=start++;
j++;
}
i++;
j--;
}
for( i=0;i<n;i++){
for(j=0;j<n;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}