需要帮助获取其他所有列的总和。我需要帮助的方法是SumofC方法(或最后一种方法)。因此,如果我输入3x3列,它将如下所示:
1 2 3 4 5 6 7 8 9
每隔一列的总和= 30 因此1 + 4 + 7 = 12(第1列),3 + 6 + 9 = 18(第3列)添加第1列和第3列以获得30.我已经拥有每列的总和,我需要的是得到每一列的总和。因此,每个奇数列并将它们全部加在一起得到一个整数。
public static void main(String [] args)
{
Scanner S = new Scanner(System.in);
System.out.println("Enter a number:");
int n = S.nextInt();
int [][] matrix = new int [n][n];
int k = 1;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
matrix[i][j] = k;
k++;
}
}
PrintMatrix(matrix);
sumofC(matrix);
}
public static void PrintMatrix(int [][] matrix)
{
for(int r = 0; r < matrix.length; r++)
{
for(int c = 0; c < matrix[r].length; c++)
{
System.out.print(matrix[r][c] + " ");
}
System.out.println();
}
}
//Sum of every Column starting at the 1st.
public static void sumofC(int [][] num)
{
for(int i = 0; i < num.length; i++)
{
int sum = 0;
for(int j = 0; j < num[i].length; j++)
{
sum += num[j][i];
}
System.out.println(sum);
}
}
答案 0 :(得分:0)
在sumofC
方法中,您可以编写i++
来跳过每个备用列,而不是在for
语句中执行i+=2
。
但是,如果矩阵中的数字始终包含代码中的数字,则可以O(1)
时间复杂度计算答案。作为提示,您可以使用公式来计算算术级数
答案 1 :(得分:0)
你需要对每个奇数列进行总和。一般是1日,3日,5日等。在编程语言中,你少开始一个,所以它是0,2,4等。在sumofC
方法的第一个循环中,每次增加i
。你只需要改变它就可以增加两倍而且你已经完成了。也就是i+=2
,你已经完成了。
要添加所有列的总和,只需使用其他变量{1}},然后在打印sumOfAllCols
变量之前执行sumOfAllCols += sum;
。