标签:
1 /** 2 * 环形矩阵 3 * 4 * @author jinfeng 5 * 6 */ 7 public class CircleMatrix { 8 9 /** 10 * 输入一个整数n,返回填充了数据的环形矩阵 11 * 12 * @param n 13 * @return 14 */ 15 public static int[][] getCircleMatrix(int length){ 16 int [][] matrix = new int[length][length]; 17 18 int count = 1; 19 20 // 最外层for循环表示整个矩阵循环的次数,k在增加,l再减小 21 for(int k = 0, l = length; k < l; ++k, --l){ 22 // 矩阵的上面的一行,要考虑不同循环中的起始下标 23 for(int i = k; i < l; ++i) 24 matrix[k][i] = count++; 25 // 矩阵的右边的一列,起始下标从k+1行开始 26 for(int i = k + 1; i < l; ++i) 27 matrix[i][l - 1] = count++; 28 // 矩阵的下面的一行,起始下标从l-2列开始 29 for(int i = l - 2; i >= k; --i) 30 matrix[l - 1][i] = count++; 31 // 矩阵的左边的一列,起始下标从l-2行开始 32 for(int i = l - 2; i > k; --i) 33 matrix[i][k] = count++; 34 } 35 36 return matrix; 37 } 38 39 public static void main(String[] args) { 40 int [][] matrix = getCircleMatrix(5); 41 for(int i = 0; i < matrix.length; ++i){ 42 for(int j = 0; j < matrix[0].length; ++j) 43 System.out.print(matrix[i][j] + "\t"); 44 System.out.println(); 45 } 46 } 47 48 }
标签:
原文地址:http://www.cnblogs.com/wjf0/p/5873898.html