从中心位置旋出
比如输入5
--------------------------------------------------------------------------------
17 16 15 14 13
18 5 4 3 12
19 6 1 2 11
20 7 8 9 10
21 22 23 24 25
或者是其转置:
17 18 19 20 21
16 5 6 7 22
15 4 1 8 23
14 3 2 9 24
13 12 11 10 25
比如输入5
--------------------------------------------------------------------------------
17 16 15 14 13
18 5 4 3 12
19 6 1 2 11
20 7 8 9 10
21 22 23 24 25
或者是其转置:
17 18 19 20 21
16 5 6 7 22
15 4 1 8 23
14 3 2 9 24
13 12 11 10 25
1、声明一个二维数组,确定中心点位置,如N=5时,中心坐标(3,3);
2、按螺旋圈数分层,比如N=5,共2层,2-9为第一层,10-25为第二层,总结出规律:相邻两层中外层比内层多8个坐标点;
3、确定每层起始坐标及该坐标处的值,根据旋转方向即可一一确定各坐标值了。如N=5时,按逆时针方向旋转,起始坐标为(3,4),再按层数(1)及方向即可确定其按旋转路线的相邻坐标了。各位有好的算法也请指正^_^