在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≤8。
public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] m = new int[n][n]; Rotating(m,n); } public static void Rotating(int[][] m, int num) { // 向方阵中填写数值 int k = 1; // 将要填写的数值 for (int i = 0; i <= num / 2; i++) { // 将要填写的圈数 for (int j = i; j < num - i; j++) { // 右侧列方向 m[j][num - i - 1] = k++; } for (int j = num - i - 2; j >= i; j--) { // 下方行方向 m[num - i - 1][j] = k++; } for (int j = num - i - 2; j > i; j--) { // 左侧列方向 m[j][i] = k++; } for (int j = i; j < num - i-1; j++) { // 上方行方向 m[i][j] = k++; } } for(int i=0;i<num;i++){ //print the matrix for(int j=0;j<num;j++){ System.out.print(String.format("M",m[i][j])); } System.out.println(); } }