3.1 Magic Squares
n阶幻方的指n×n数字,通常都是不同的整数,n在所有行,所有列,对角线的和相同在main()函数中调用五次isLegalMagicSquare()函数,将5个文本文件名分别作为参数输入进去,看其是否得到正确的输出(true, false)。需要能够处理输入文件的各种特殊情况,例如:文件中的数据不符合Magic Square的定义(行列数不相等、并非矩阵等)、矩阵中的某些数字并非正整数、数字之间并非使用\t分割等。若遇到这些情况,终止程序执行(isLegalMagicSquare函数返回false),并在控制台输出错误提示信息。
将generateMagicSquare产生的magic square写入文件\src\P1\txt\6.txt中;当输入的n不合法时(n为偶数、n为负数等),不要该函数抛出异常并非法退出,而是提示错误并“优雅的”退出——函数输出false结束。利用前面已经写好的isLegalMagicSquare()函数,在main()函数判断该函数新生成的文本文件6.txt是否符合magic square的定义。
3.1.1 isLegalMagicSquare()
按步骤给出你的设计和实现思路/过程/结果。
读入文件(创建FileReader BufferReader 初始化line)
将字符串转化为整数进行储存(非空的读入行进行划分,加入数组,看一下数字是否出现过)
算一算各个行列,以及对角线的和是否相等(求出各个值,进行对比)
判断出是否为幻方
3.1.2 generateMagicSquare()
函数目的是生成一个边长为奇数的幻方
具体做法:
-
<