我試圖在整個二維數組中迭代以找到其總和等於兩者之和的行其他行在同一個二維數組中。 我很難找出如何比較sum2和sum3爲零之前的比較;搜索在二維數組中是否存在一行,其總和等於相同二維數組中其他兩行的總和
*爲SUM2:其金額將只是在行(N-1)的總和,相同SUM3 *只需要找到一種方式重新SUM2和SUM3零
boolean compare(int n, int [][] A)
{
int i, j, k, x, y, p, sum, sum2, sum3, total;
//row
for (i = 0; i < n; i++)
{
sum = 0;
//col
for (j = 0; j < n; j++)
sum+= A[i][j];
//row
for (k = 0; k < n; k++)
{
sum2 = 0;
//col
if (k != i)
for (x = 0; x < n; x++)
sum2 += A[k][x];
}
for (y = 0; y < n; y++)
{
sum3 = 0;
if ((y != k) && (y != i))
for (p = 0; p < n; p++)
sum3 += A[y][p];
}
total = sum2 + sum3;
if (sum == (total))
return true;
}//for (i = 0; i < n; i++)
return false;
}
之前比較
任何輸入,非常感謝
****在這裏,我們走了,我下面更新我的代碼:
boolean compare(int n, int [][] A)
{
int i, j, k, x, y;
int [] sumArray = new int[n];
for (i = 0; i < n; i++)
{
sum = 0;
for(j = 0; j < n; j++)
sum += A[i][j];
sumArray[i] = sum;
}
for (k = 0; k < n; k++)
{
for(x = 0; x < n; x++)
{
if(x != k)
{
for(y = 0; y < n; y++)
{
if((y != x) && (y != k))
{
if(sumArray[k] == (sumArray[x] + sumArray[y]))
return true;
}
}
}
}
}
return false;
}
代碼中的'n'是什麼? – JohnnyAW
也許計算每一行的總和會更簡單,然後將總和值作爲一維數組使用? –
@aguibert是我的第一個,但也是:) – JohnnyAW