主题:[经典问题]魔术方块
xpycc
[专家分:410] 发布于 2005-07-12 13:03:00
九宫格大家都知道吧,就是每行、每列、对角线的数字总和必须相等,如下列数字排列:
6 1 8
7 5 3
2 9 4
这里就是改变它,使他是n*n(n为奇数,且大于1)的方格,要求不变。
输入n,打印出n*n的魔术方块。
我想这种入门级的题目大家应该知道怎么做吧~~~~~~~~~~~~~~~
回复列表 (共9个回复)
沙发
xpycc [专家分:410] 发布于 2005-07-17 08:39:00
不是吧,没人会做么?
共布算法了~~~~~~~~~~~~~~~~~~~~~~~~~
先把1放在第1行第(n+1)/2列,
然后把后来的数放到前一个数的左上角,当行号<1时,则让行号为最大号(n);当列号<1时,让列号为最大号(n)。
若某一空格已有数存在,则填在该数同列的下一格,当数字填到左上角时,下一个数在该数下方。
如:n=5:
15 8 1 24 17
16 14 7 5 23
22 20 13 6 4
3 21 19 12 10
9 2 25 18 11
算法都公布了,程序就大家自己写吧~~~~~~~~~~~~~~~
板凳
口口and枕头 [专家分:1550] 发布于 2005-07-17 11:16:00
我是没有看到~~~~
早就看过了~~~~~
书上的例题~~~
3 楼
cxxx401 [专家分:140] 发布于 2005-07-17 11:47:00
当我傻子啊.
全国青少年信息学奥林匹克联赛培训教材(中学)
第六章 数组
例6-13(P97)!!
自己慢慢找吧.
4 楼
口口and枕头 [专家分:1550] 发布于 2005-07-17 12:17:00
别个不一定有这本书呀~~~~
5 楼
xpycc [专家分:410] 发布于 2005-07-19 11:38:00
3楼的:你怎么早不说呀?等我公布了你才说!那就不应该怪我当你是傻子~~~~~~~~
6 楼
口口and枕头 [专家分:1550] 发布于 2005-07-19 11:55:00
我又没说你当我是傻子~~~~
我支持你撒~~~~~
这种题拿出来看看还是可以~~~
这么多书把它拿来当例题说明这个题还是很经典的呀`~~~~~
CXXX401说你当他是傻子~~~~
7 楼
xpycc [专家分:410] 发布于 2005-07-19 12:00:00
楼上的:这件事与你无关,我知道你是好人啦,我是说3楼的!
8 楼
口口and枕头 [专家分:1550] 发布于 2005-07-19 13:13:00
我以为我就在3楼呢~~~~~
9 楼
xpycc [专家分:410] 发布于 2005-07-20 12:43:00
呵呵~~~~~~~~~~~~
我来回复