幻方是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。n阶幻方是由1~n
2之间的自然数组成的一个n阶方阵,其各行、各列及对角线所含的数字之和均相等。例如3阶幻方(如图1),幻和为15。
奇数阶幻方的构造是所有幻方中最简单的,可以按照如下规则来实现:
(1)将1放在第一行中间一列;(如图2)
(2)从2开始直到n*n为止,各数按下列规则存放:
假设当前要存放的数为k,则k存放在(k-1)数的右上方并按照规则:
①若(k-1)放在第1行且不是最后一列,则将k存放在n行,(k-1)所在列右侧;(如图3)
②若(k-1)放在第n列且不是第一行,则将k存放在第1列,(k-1)的上1行;(如图4)
③若(k-1)即不在第1行也不在最后1列:
若(k-1)右上方有数,则将k放在(k-1)的下1行的同一列。(如图5)
若(k-1)右上方没有数,则将k放在(k-1)的右上方;(如图6)
④若(k-1)在第1行第n列,将k填在(k-1)的正T方(如图7)
问题1.用右图的程序生成5阶幻方后,Listl中的第一行显示的是__________。
问题2.30阶以内的幻方程序如下图,代码如下,请完成代码填空:
① __________________________________
②__________________________________
③__________________________________
④ __________________________________