/*** 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