幻方

来源:互联网 发布:js屏幕大小变化 编辑:程序博客网 时间:2024/05/16 23:50

Problem description
幻方是一种很有意思的数字矩阵,在很早著名的九宫八卦阵就与幻方有关。
幻方的定义为:
1 到 N*N 的整数填入N*N的方格中,每行和每列以及对角线的数字之和必须是相等的。
你作为八卦公司的顶级程序员,现在需要你解决一个问题,将任意奇数阶的幻方找出来。


Input
输入包括多个测试集,每行为一个正奇数N(1 <= N < 1000),0作为输入的结束且不需要处理。


Output
对于输入的每一个N, 输出一个它所对应的N阶幻方,如果存在多个,任意一个即可。
每个幻方为N*N的矩阵,
对于每个幻方,每行输出幻方的一行,每行中的数字之间用一个或多个空格分开。不同的幻方之间用一个空行分开。


Sample Input
1
3
0

Sample Output
1

4 9 2
3 5 7
8 1 6
==================================================================================

 

丫丫的,这个程序编了2天,气死我了~

算法也是知道的,但是就是不正确

后来才发现问题所在啊……

原来是_isHad()那个if判断进去后,修改了位置,但是修改的位置并没有用_isHad()再次只能一遍,所以下次有程序去判断那个位置的_isHad()后返回的还是FALSE……

现在还有一个不能算是Bug 的Bug,重新计算position后并没有判断那个位置是否能用。

不过根据算法来看,那个位置肯定是能用的咧~~

不过程序还是过于复杂了,看到有人用一句话写出来,还得学习学习~

原创粉丝点击