求大佬解答一下,这个怎么做,c,c++,Java都行

有一个正方体神坛,由 N * N 个方格构成,每个方格可以填入一个数字。只有正确填写所有方格,你才可以升天成神。

现在给你1,2,3,,,N * N,一共 N * N 个数。神坛右上角的方格已经填入了数字 1 。

现在你要以此 1 为起点,顺时针螺旋并按照从大到小的顺序填入这 N * N 个数。输出格式如样例所示。

例如:

N=5

13 14 15 16 1

12 23 24 17 2

11 22 25 18 3

10 21 20 19 4

9 8 7 6 5

输入
每个测试文件只包含一组测试数据,每组输入一个N。

输出
输出构成的神坛。

输入样例 1

5
输出样例 1

13 14 15 16 1

12 23 24 17 2

11 22 25 18 3

10 21 20 19 4

9 8 7 6 5