前段时间面试的时候被问到打印回形数组,当时只写了个大概,后来网上看了下,也实现得麻烦,就重新写了下,
题目:输入一个整数N,打印出从1~N*N的N*N矩阵。
比如N = 3,构成矩阵:
1,2,3,
8,9,4,
7,6,5,
比如N = 4,构成矩阵:
1, 2, 3, 4,
12,13,14, 5,
11,16,15, 6,
10, 9, 8, 7,
N=5时,构成矩阵:
1, 2, 3, 4, 5,
16,17,18,19, 6,
15,24,25,20, 7,
14,23,22,21, 8,
13,12,11,10, 9,
对于输入的整数,安行输出回形矩阵。
思路就是按照回形数组的规则,第一行先向右存放数组,然后折行向下,然后向左,最后向上,形成回形。
只用循环一次就可以了(看了几篇文章,用了几层循环,较麻烦)
枚举类,用来代表“上下左右”四个方向
public enum DirectionEnum{
RIGHT(1,"向右"),
DOWN(2,"向下"),
LEFT(3,"向左"),
UP(0,"向上");
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;