二维数组问题
把1—36分别放入二维数组中,计算数组对角元素之和。(即6 * 6的数组)
这个怎么写???
把1—36分别放入二维数组中,计算数组对角元素之和。(即6 * 6的数组)
这个怎么写???
2017-06-23
/**
* Created by harmony on 2017/6/23.
* 这个方法适用于求 1-N2(N的平方)矩阵对角线和
*
*/
public class Matrix {
private int[][] matrix;
public static void main(String[] args)
{
Matrix matrix = new Matrix();
matrix.createMatrix(6); //此时N的值为6
matrix.loadKeys();
System.out.println("对角和为:"+ matrix.calSum());
}
//分配矩阵空间
// 这里用length表示 N
public void createMatrix(int length)
{
matrix = new int [length][length];
}
//向矩阵中添加数据
public void loadKeys()
{
int num = 1;//num 的范围为1-N2(N的平方)
for (int i = 0; i < matrix.length;i++)
for (int j = 0;j < matrix[i].length; j++,num++)
matrix[i][j] = num;
}
//计算对角和
public int calSum()
{
int sum = 0;
int i=0,j = matrix.length - 1;
for (;i < j; i++,j--) {
sum = sum + matrix[i][i] + matrix[j][j] + matrix[i][j] + matrix[j][i];
}
if (i == j)
sum = sum + matrix[i][i];
return sum;
}
}
举报