说明
将1到n(为奇数)的数字排列在nxn的方阵上,且各行、各列与各对角线的和必须相同,如下所示:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f8e39a64e7e743ed39627546ab8e7d55.png)
解法
一般程式语言的阵列索引多由0开始,为了计算方便,我们利用索引1到n的部份。
- 第一个数字放在第一行第一列的正中央。
- 在计算向右(左)上或向下时,我们可以将索引值除以N值,如果得到余数为1就向下,否则就往右(左)上。
- 若上一个数在第一行,则下一个数放在行数为N,列数为j+1的位置。
- 若上一个数在第N列,则下一个数放在行数为i-1,列数为1的位置。
(i指行数,j指列数)
如下图所示:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/53a5e79a04f9688b51856bd59b82082d.jpeg)
#include <stdio.h>
#include