标题:四阶幻方
把1~16的数字填入4x4的方格中,使得行、列以及两个对角线的和都相等,满足这样的特征时称为:四阶幻方。
四阶幻方可能有很多方案。如果固定左上角为1,请计算一共有多少种方案。
比如:
1 2 15 16
12 14 3 5
13 7 10 4
8 11 6 9
以及:
1 12 13 8
2 14 7 11
15 3 10 6
16 5 4 9
就可以算为两种不同的方案。
请提交左上角固定为1时的所有方案数字,不要填写任何多余内容或说明文字。
416
解析:四阶幻方,行、列、对角线之和为 (1+2+...+16)/4 = 34。
n阶幻方,行、列、对角线之和为(1+n)/2n。
直接进行dfs,然后判断是否符合条件,程序运行时间很长,需要在深度遍历过程中进行判断。
例如:
1、第一行全部有值后判断,不符合条件立刻返回,不再继续向下遍历;
2、第一行符合要求,向下遍历,第二行全部有值后判断,不符合要求立刻返回,不再继续向下遍历;
3、第二行也符合要求,向下遍历,第三行全部有值后判断,不符合要求立刻返回,不再继续向下遍历;
4、第三行也符合要求,向下遍历,得到整个排列,判断行、列、对角线和是否符合要求,符