@Test public void virtualMain() { int[][] matrix = generateMatrix(9); MyArray.printSquareArray(matrix, 2); } public int[][] generateMatrix(int n) { int[][] res = new int[n][n]; int square = n * n, i = (int) Math.ceil(n / 2.00); int row = 0, column = 0; int counter = 1; int layer = 0; while (layer < i) { int starter = n - layer * 2; for (int j = counter, len = starter + counter - 1; j <= len; j++) { res[column][row++] = counter++; } row--; column++; for (int j = counter, len = starter + counter - 2; j <= len; j++) { res[column++][row] = counter++; } column--; row--; for (int j = counter, len = starter + counter - 1; j < len; j++) { res[column][row--] = counter++; } row++; column--; for (int j = counter, len = starter + counter - 2; j < len; j++) { res[column--][row] = counter++; } row++; column++; layer++; } return res; }
//辅助打印 /** * format with output * @param data two dimension array * @param unitLen the maximum value of data unit length */ public static void printSquareArray(int[][] data,int unitLen){ unitLen+=1; for (int i = 0; i < data.length; i++) { for (int j = 0,len=data[0].length; j < len; j++) { System.out.print(data[i][j]); int unit = String.valueOf(data[i][j]).length(); printSpace(unitLen - unit); } System.out.println(""); } } private static void printSpace(int num){ while (num-- > 0) System.out.print(" "); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)