首先分析一下,这题的要求就是判断输入的矩阵是不是一个幻方矩阵(记得MATLAB中的magic命令就可以生成)。那么检查条件从矩阵特点入手即可。
要满足:
1.矩阵为方阵
2.每列求和,列列之间和相等。行同理,对角线求和也和列/行求和相等。
思路:
有五个文件需要读取,并且我们需要处理字符串,由于不同文件中的间隔符可能不一致,需要处理不同的情况,显然单纯的利用spilt方法是不行的。这里最合适的方法应当是用正则表达式提取数字信息。
其次,矩阵的阶数不同,那么储存要用的二维数组大小也应该不同,恰好java中有泛型可以实现这一个技术。
另外就是需要输出异常信息,需要使用try……catch语句抛出异常。
综上,应该是比较完美的解决方法了。当然,我学习java的时间还不长,各种操作还不熟练,这个Part1虽然简单,但也因为java语法问题花了不少时间。