-
- Magic Squares
- 从五个文档中读入数据,来判断输入的数据能否构成一个MagicSquare
- 完善generateMagicSquare函数,使之能够产生一个MagicSquare
-
- isLegalMagicSquare()
-
- 首先按行读入文档的字符串,并用String.split()按\t分割存入str[]中
- 对str[]中每个字符串用Integer.valueOf转化为数字
- 循环操作,直到读完整个文件,期间对并非矩阵,含有非正整数或未用/t分割情况抛出异常
- 求每行、每列、对角线的和,判断如果不完全相等,返回值为false,都相等则返回值为true
-
-
- generateMagicSquare()
-
原理:
1.把1放在第一行正中
2.每一个数放在前一个数的右上一格;
3.如果这个数所要放的格行数小于1,则放在底行,仍然要放在上一个放置的数的右一列;
4.如果这个数所要放的格列数大于n,则放在第1列,仍然要放在上一个放置的数的上一行;
5.如果这个数所要放的格行数小于1,且列数大于n,那么就把它放在第n行第1列;
6.如果这个数所要放的格已经有数填入,那么就把它放在上一个放置的数的下一行同一列。
然后只需将产生的矩阵写入文件\src\P1\txt\6.txt中并且当输入的n不合法时(n为偶数、n为负数等)提示错误并返回false。