假设存在一个2D Java数组(4x6用于表示)以随机顺序填充数字,范围从1到9。
如果想要计算该数组中所有数字组的个别总和怎么办?
在这种特殊情况下:
以下代码适用于任何数组,但前提是每个条目都精确地为1x1,在这种情况下(以及任何其他情况)都是无用的,因为它只是遍历所有条目。
for (int a = 0; a < x; a++) {
for (int b = 0; b < y; b++) {
sum = array[a][b];
}
}
如何让它通过一组条目,然后对位于单个组中的所有值求和?
答案 0 :(得分:0)
startx
,starty
,endx
,endy
就是答案。您将从start
迭代到end
。这确实需要您知道(或能够计算)这些变量。如果没有,请澄清确切的结构。
如果您的数组声明为:
int[][] matrix = new int [4][6];
一个粗略的例子:
public int sumOfSubMatrix (int startx, int starty, int endx, int endy) {
int sum = 0;
for (int x = startx; x <= endx; x++) {
for (int y = starty; y <= endy; y++) {
sum += matrix[x][y];
}
}
return sum;
}
您只需添加每个&#34;单元格&#34;到和变量。
现在,如果&#34;颜色&#34;这是不可能的。分散了,甚至一个单元关闭,然后算法必须有一些东西,比如它们的位置。如果结构是100%混乱,那么你最好的选择是使用if-guard
s的强力。