1、 什么是回型数据?
比如输入7
1 2 3 4 5 6 7
24 25 26 27 28 29 8
23 40 41 42 43 30 9
22 39 48 49 44 31 10
21 38 47 46 45 32 11
20 37 36 35 34 33 12
19 18 17 16 15 14 13
由上面可以看到, 回型数据是按照第一行正确排序,第一行排完之后,在第一行的最后一列的位置开始排序,即以列为排序路径进行打印,加上第一行的最后一列的数据构成n个数据,然后再以最后一行的数据作为最后一行最后一列的数据进行排序打印。类似回型针进行打印。
2、代码
public class HuiXingData {
public static void main(String[] args) {
int n = 7;
int[][] arr = new int[n][n];
int cout = 0; //要显示的数据
int maxX = n-1; // x 轴最大下标
int maxY = n-1; // Y 轴最大下标
int minX = 0;//X 轴最小下标
int minY = 0;//Y 轴最小下标
while(minX <= maxX) {
for(int x = minX;x <= maxX; x++) {
arr[minY][x] = ++cout;
}
minY++;
for(int y = minY;y <= maxY;y++) {
arr[y][maxX] = ++cout;
}
maxX--;
for(int x = maxX; x>= minX; x--) {
arr[maxY][x] = ++cout;
}
maxY--;
for(int y = maxY; y>=minY; y--) {
arr[y][minX] = ++cout;
}
minX++;
}
// 打印
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}