从中心位置旋出
比如输入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是奇数,下面就以N是奇数的情况说说我的思路
    1、声明一个二维数组,确定中心点位置,如N=5时,中心坐标(3,3);
    2、按螺旋圈数分层,比如N=5,共2层,2-9为第一层,10-25为第二层,总结出规律:相邻两层中外层比内层多8个坐标点;
    3、确定每层起始坐标及该坐标处的值,根据旋转方向即可一一确定各坐标值了。如N=5时,按逆时针方向旋转,起始坐标为(3,4),再按层数(1)及方向即可确定其按旋转路线的相邻坐标了。各位有好的算法也请指正^_^