在 Java 中查找所有行和所有列之和之间的差异

javaobject oriented programmingprogramming更新于 2024/6/4 19:49:00

在 Java 中,矩阵可以用二维数组表示。矩阵用于存储和处理具有表格结构的数据。矩阵具有与其相关的几个属性和操作,例如加法、减法、乘法、转置和行列式计算。

根据问题陈述,我们必须将所有单独的行和列相加。然后,我们需要计算这些添加的行和列之间的差异并显示结果。

开始吧!

例如

假设原始矩阵为:

{4, 2, 1},
{3, 5, 6},
{8, 9, 7}

对矩阵进行运算后,结果为:

所有行和所有列之和之差为:0

算法

步骤 1:定义并初始化矩阵。

步骤 2:计算每行之和并将结果存储在数组中。

步骤 3:计算每列之和并将结果存储在数组中数组。

步骤 4:计算所有行的总和以及所有列的总和。

步骤 5:找出所有行的总和与所有列的总和之间的差值。

步骤 6:打印结果。

多种方法

我们提供了不同方法的解决方案。

  • 通过使用矩阵元素的静态初始化

  • 通过使用用户定义的方法

让我们逐一查看程序及其输出。

方法 1:通过使用数组元素的静态初始化

在这种方法中,矩阵元素将在程序中初始化。然后按照算法找出所有行和所有列的总和之间的差值。

示例

public class Main 
{
   public static void main(String[] args) 
   {
        // 定义并初始化矩阵
        int[][] matrix = {{11, 7, 1},{15, 8, 6},{2, 5, 17}};
        // 计算每行的总和并将结果存储在数组中
        int[] rowSums = new int[matrix.length];
        for (int i = 0; i < matrix.length; i++) {
            int sum = 0;
            for (int j = 0; j < matrix[i].length; j++) {
                sum += matrix[i][j];
            }
            rowSums[i] = sum;
        }
        // 计算每列的总和并将结果存储在数组中
        int[] colSums = new int[matrix[0].length];
        for (int j = 0; j < matrix[0].length; j++) {
            int sum = 0;
            for (int i = 0; i < matrix.length; i++) {
                sum += matrix[i][j];
            }
            colSums[j] = sum;
        }
        // 所有行的总和
        int sumOfRows = 0;
        for (int sum : rowSums) {
            sumOfRows += sum;
        }
        // 所有列的总和
        int sumOfCols = 0;
        for (int sum : colSums) {
            sumOfCols += sum;
        }
        // 查找所有行的总和与所有列的总和之间的差异
        int difference = sumOfRows - sumOfCols;
        // 显示差异
        System.out.println("所有行和所有列的总和之间的差异为:" + difference);
   }
}

输出

所有行和所有列之和之间的差异为:0

方法 2:使用用户定义方法

在此方法中,矩阵元素将在程序中初始化。然后通过将矩阵作为参数传递来调用用户定义方法,并根据算法在方法内部找到所有行和所有列之和之间的差异。

示例

public class Main
{
    public static void main(String[] args)
    {
        // 定义并初始化矩阵
        int[][] matrix = {{11, 7, 1},{15, 8, 6},{2, 5, 17}};
        // 调用用户定义方法
        callingMatrix(matrix);
    }
    // 用户定义方法
    public static void callingMatrix(int[][] matrix)
    {
        // 计算每行的总和并将结果存储在数组中
        int[] rowSums = new int[matrix.length];
        for (int i = 0; i < matrix.length; i++) {
            int sum = 0;
            for (int j = 0; j < matrix[i].length; j++) {
                sum += matrix[i][j];
            }
            rowSums[i] = sum;
        }
        // 计算每列的总和并将结果存储在数组中
        int[] colSums = new int[matrix[0].length];
        for (int j = 0; j < matrix[0].length; j++) {
            int sum = 0;
            for (int i = 0; i < matrix.length; i++) {
                sum += matrix[i][j];
            }
            colSums[j] = sum;
        }
        // 所有行的总和
        int sumOfRows = 0;
        for (int sum : rowSums) {
            sumOfRows += sum;
        }
        // 所有列的总和
        int sumOfCols = 0;
        for (int sum : colSums) {
            sumOfCols += sum;
        }
        // 查找所有行的总和与所有列的总和之间的差异
        int difference = sumOfRows - sumOfCols;
        // 显示差异
        System.out.println("所有行和所有列的总和之间的差异为:" + difference);
    }
}

输出

所有行和所有列之和的差为:0

在本文中,我们探讨了如何使用 Java 编程语言找出所有行和所有列之和的差。


相关文章