读书人

算法:螺旋形二维矩阵兑现

发布时间: 2013-08-04 18:26:15 作者: rapoo

算法:螺旋形二维矩阵实现
package algorithm;public class LinerMatrix {/** * @author buptkongxiangqi@gmail.com * @param args */public static int[][] creatematrix(int dis) {int[][] matrix;if (dis == 1) {matrix = new int[1][1];matrix[0][0] = 1;return matrix;} else {matrix = new int[dis][dis];// num表示需要赋的值int num = 1;matrix[0][0] = num;// i代表当前矩阵维数-1,其实也就是当前最大下标啦for (int i = 1; i < dis; i++) {// 如果当前矩阵为偶数的,则顺时针赋值if ((i + 1) % 2 == 0) {for (int k = 0; k <= i; k++) {num++;System.out.println(k + " " + i + "=" + num);matrix[k][i] = num;}for (int l = (i - 1); l >= 0; l--) {num++;matrix[i][l] = num;}} else {// 当前矩阵为奇数则顺时针赋值for (int k = 0; k <= i; k++) {num++;matrix[i][k] = num;}for (int l = i - 1; l >= 0; l--) {num++;matrix[l][i] = num;}}}return matrix;}}public static void main(String[] args) {// TODO Auto-generated method stubint n = 6;int[][] matrix = creatematrix(n);for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {String numstr = Integer.toString(matrix[i][j]);if (matrix[i][j] < 10)numstr = "0" + numstr;System.out.print(numstr + " ");}System.out.println("");}}}

?

?结果在最上边啦

读书人网 >编程

热点推荐