甲幻方是一个正乘n正方形网格,在范围填充有不同的正整数1,2,...,N ^ 2,使得每个单元包含每个行中的不同的整数和整数的和,列和对角线相等。
您的任务是获取由正数和空单元格的占位符组成的n × n矩阵(我将使用 0,但您可以使用任何喜欢的非数字字符或数据类型),并确定是否为填写遗漏的数字可以制作一个魔术方块
矩阵将至少为2×2,最多为10×10。最小的非平凡的幻方是3×3。输入矩阵中的数字可能大于n ^ 2,并且所有单元格都有可能被填充。
测试用例:
2 2
2 0
False
8 0 6
0 5 0
0 9 2
True
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
True
10 0 1
0 5 9
3 7 5
False
99 40 74 8 15 51 0 67 0 1
0 41 55 14 0 57 64 0 98 0
81 47 56 20 22 63 70 54 0 88
0 28 0 21 0 69 71 60 85 19
0 34 0 2 9 75 52 61 0 25
24 65 49 0 90 26 33 42 17 76
0 0 30 89 91 0 39 48 0 82
6 72 31 95 0 38 45 29 0 13
12 53 0 96 78 0 0 0 10 94
18 59 43 77 0 0 27 36 0 100
True
嗯 我想我已经看到了解决方案的地方..
—
马修卢武铉
建议的测试用例,以确保正确测试了对角线:(
—
Arnauld
[ [ 1, 5, 9 ], [ 6, 7, 2 ], [ 8, 3, 4 ] ]
虚假)
我们可以给占位符编号(即
—
斯科特·米尔纳
[[8, X1, 6], [X2, 5, X3], [X4, 9, 2]]
)吗?
@Scott,请放心……
—
Stewie Griffin