Java 程序计算矩阵对角线之和

javacampus interviewserver side programmingprogramming

在本文中,我们将了解如何计算矩阵对角线之和。矩阵的元素按行和列排列。主对角线是方阵中从左上角到右下角的对角线。

次对角线是方阵中从左下角到右上角的对角线。

下面是相同的演示 −

假设我们的输入是

输入矩阵:
4 5 6 7
1 7 3 4
11 12 13 14
23 24 25 50

期望输出将是

主对角线元素总和:74
次对角线元素总和:45

算法

步骤 1 - 开始
步骤 2 - 声明一个整数矩阵,即 input_matrix
步骤 3 - 定义值。
步骤 4 - 使用两个 for 循环遍历矩阵的每个元素,添加对角线元素,使用条件 ‘i’ = ‘j’ 获得主对角线元素之和,使用条件 ‘i’ + ‘j’ = matrix_size – 1 得到次对角线元素之和。
步骤 5 - 显示结果
步骤 5 - 停止

示例 1

在这里,我们将所有操作绑定在‘main’函数下。

public class MatrixDiagonals {
   static public void main(String[] args) {
      int[][] input_matrix = {
         { 4, 5, 6, 7 },
         { 1, 7, 3, 4 },
         { 11, 12, 13, 14 },
         { 23, 24, 25, 50 }
      };
      int matrix_size = 4;
      System.out.println("矩阵定义为:");
      for (int i = 0; i < matrix_size; i++) {
         for (int j = 0; j < matrix_size; j++)
         System.out.print(input_matrix[i][j] + " ");
         System.out.print("\n");
      }
      int principal_diagonal = 0, secondary_diagonal = 0;
      for (int i = 0; i < matrix_size; i++) {
          for (int j = 0; j < matrix_size; j++) {
            if (i == j)
               principal_diagonal += input_matrix[i][j];
              if ((i + j) == (matrix_size - 1))
               secondary_diagonal += input_matrix[i][j];
         }
      }
      System.out.println("\n 矩阵主对角线元素之和为: " + principal_diagonal);
      System.out.println("\n 矩阵次对角线元素之和为: " + secondary_diagonal);
   }
}

输出

矩阵定义为:
4 5 6 7
1 7 3 4
11 12 13 14
23 24 25 50

矩阵主对角线元素之和为:74

矩阵次对角线元素之和为:45

示例 2

在这里,我们将操作封装成展现面向对象编程的函数。

public class MatrixDiagonals {
   static void diagonals_sum(int[][] input_matrix, int matrix_size) {
      int principal_diagonal = 0, secondary_diagonal = 0;
      for (int i = 0; i < matrix_size; i++) {
         for (int j = 0; j < matrix_size; j++) {
           如果 (i == j)
               principal_diagonal += input_matrix[i][j];
            如果 ((i + j) == (matrix_size - 1))
               secondary_diagonal += input_matrix[i][j];
         }
      }
      System.out.println("\n 矩阵主对角线元素之和为: " + principal_diagonal);

      System.out.println("\n 矩阵次对角线元素之和为: " + secondary_diagonal);
   }
    static public void main(String[] args) {
      int[][] input_matrix = {
          { 4, 5, 6, 7 },
          { 1, 7, 3, 4 },
         { 11, 12, 13, 14 },
         { 23, 24, 25, 50 }
      };
      int matrix_size = 4;
      System.out.println("矩阵定义为:");
      for (int i = 0; i < matrix_size; i++) {
         for (int j = 0; j < matrix_size; j++)
          System.out.print(input_matrix[i][j] + " ");
         System.out.print("\n");
      }
      diagonals_sum(input_matrix, matrix_size);
   }
}

输出

矩阵定义为:
4 5 6 7
1 7 3 4
11 12 13 14
23 24 25 50

矩阵主对角线元素之和为:74

矩阵次对角线元素之和为:45

相关文章