打印螺旋矩阵
/* 打印螺旋矩阵 * 所谓螺旋矩阵,即: * 比如 N = 3,打印: * 1 2 3 * 8 9 4 * 7 6 5 * * N = 4,打印: * 1 2 3 4 * 12 13 14 5 * 11 16 15 6 * 10 9 8 7 * */ import java.util.*; public class lianxi14{ public static void main(String[] args){ int N = 0; Scanner sc = new Scanner(System.in); System.out.println("请输入矩阵大小N的值:"); N = sc.nextInt(); int[][] Matrix = new int[N][N]; setMatrix(Matrix, 0, 0, 1, N); printMatrix(Matrix); } /************************************************************** * 函数功能:螺旋矩阵赋值 * 参数说明:int[][] A:二维矩阵 int x:矩阵中行坐标 * int y: 矩阵中列坐标 int start:初始值 * int n: 矩阵大小 **************************************************************/ static void setMatrix(int[][] A, int x, int y, int start, int n){ int i = 0; if(n <= 0) return; if(n == 1){ A[x][y] = start; return; } //up for(i = y; i < y + n - 1; i++) A[x][i] = start++; //right for(i = x; i < x + n - 1; i++) A[i][y+n-1] = start++; //down for(i = y + n - 1; i > y; i--) A[x+n-1][i] = start++; //left for(i = x + n - 1; i > x; i--) A[i][y] = start++; setMatrix(A, x+1, y+1, start, n-2); } /* * 函数功能:打印矩阵 */ static void printMatrix(int[][] A){ int len = A.length; for(int i = 0; i < len; i++){ for(int j = 0; j < len; j++){ System.out.print(A[i][j]+"\t"); } System.out.println(""); } } }