/** * Created by IntelliJ IDEA. * author: 蔡燃 * date: 2020/1/18 * explain: */ public class 回形输出 { static int num = 5;//输出的行列数 static int[][] nums = new int[num][num]; public static void main(String[] args) { int cs = num - 1; int csj = 0; for (int i = 0; i < num; i++) { nums[0][i] = i + 1; } int value = num; int xz = 1; int rightLine = num - 1; int downRow = num - 1; int upRow = 1; int leftLine = 0; while (cs > 0) { if (xz == 1) { int row = upRow; int line = rightLine; value = down(row, line, value, cs); rightLine--; } if (xz == 2) { int row = downRow; int line = rightLine; value = left(row, line, value, cs); downRow--; } if (xz == 3) { int row = downRow; int line = leftLine; value = up(row, line, value, cs); leftLine++; } if (xz == 4) { int row = upRow; int line = leftLine; value = rigt(row, line, value, cs); upRow++; xz = 0; } xz++; csj++; if (csj == 2) { cs--; csj = 0; } } println(); } private static int down(int row, int line, int value, int gs) { for (int i = 0; i < gs; i++) { nums[row][line] = value + 1; value++; row++; } return value; } private static int left(int row, int line, int value, int gs) { for (int i = 0; i < gs; i++) { nums[row][line] = value + 1; value++; line--; } return value; } private static int up(int row, int line, int value, int gs) { for (int i = 0; i < gs; i++) { nums[row][line] = value + 1; value++; row--; } return value; } private static int rigt(int row, int line, int value, int gs) { for (int i = 0; i < gs; i++) { nums[row][line] = value + 1; value++; line++; } return value; } private static void println() { int len = String.valueOf(num * num).length(); for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { String str = ("0000000000" + nums[i][j]); str = str.substring(str.length() - len); System.out.print(str + " "); } System.out.println(); } System.out.println(); System.out.println(); } } //输出样式:
01 02 03 04 05
16 17 18 19 06
15 24 25 20 07
14 23 22 21 08
13 12 11 10 09