【发布时间】:2015-05-31 00:27:36
【问题描述】:
public class magicSquare {
public static void main(String[] args) {
int[][] mySquare = {{2,7,6},
{9,5,1},
{4,3,8}};
System.out.print(columnsAreAllEqualToMagicSum(mySquare));
}
//***********************//
public static int getSumOfColumn(int[] /*[] array, int index*/) {
int sum = 0; //********//
int[] t = getColumn(array /*, index*/);
for (int i = 0; i < t.length; i++) {
sum = sum + t[i];
System.out.print(t[i] + " ");
}
System.out.println();
return sum;
}
public static int[] getColumn(int[][] array, int index) {
int[] result = new int[array[1].length];
for (int i = 0; i < array[1].length; i++) {
result[i] = array[i][index];
}
return result;
}
public static boolean columnsAreAllEqualToMagicSum(int[][] array) {
int arrayLength = array[1].length;
int previousValue = 0;
for (int i = 0; i < arrayLength; i++) {
int value = getSumOfColumn(array, i);
if (i != 0) {
if (previousValue != value) {
return false;
}
}
previousValue = value;
}
return true;
}
如果您取消所有 cmets 的注释,此代码可以正常工作。但我在这里要做的是将二维数组传入getColumn 方法,然后以一维数组返回,然后传入getSumOfColumn。 columnsAreAllEqualToMagicSum 然后将检查是否所有列都等于 15 并返回 true,否则返回 false。我该怎么做?
【问题讨论】:
-
请edit 解释为什么您不能取消注释该代码,以及对列求和的具体挑战是什么,以及您是否尝试使用
getColumn展平整个数组或从中选择一列。感谢您提高问题的参考价值并使其更易于回答!
标签: java arrays methods multidimensional-array