Java 程序显示上三角矩阵


在本文中,我们将了解如何在 Java 中显示给定矩阵的上三角矩阵。矩阵是其元素的行和列排列。具有 m 行和 n 列的矩阵可以称为 m × n 矩阵。并且,术语上三角矩阵指的是所有对角线以下的元素均为 0 的矩阵。

示例场景

Input: matrix = { 2, 1, 4 },
				{ 1, 2, 3 },
				{ 3, 6, 2 }
Output: upptri_mat = 2 1 4
					 0 2 3
					 0 0 2

使用嵌套 for 循环

要显示给定矩阵的上三角矩阵,请使用嵌套 for 循环迭代矩阵的每个元素。然后,使用行 != 列条件将 0 分配给矩阵对角线以下的所有 [i][j] 位置。

示例

在下面的 Java 程序中,我们使用嵌套 for 循环来打印上三角矩阵。

public class UpperTriangle {
   public static void main(String[] args) {
      int input_matrix[][] = {
         { 2, 1, 4 },
         { 1, 2, 3 },
         { 3, 6, 2 }
      };
      int rows = input_matrix.length;
      int column = input_matrix[0].length;
      System.out.println("The matrix is defined as: ");
      for (int i = 0; i < rows; i++) {
         for (int j = 0; j < column; j++) {
            System.out.print(input_matrix[i][j] + " ");
         }
         System.out.println();
      }
      if (rows != column) {
         return;
      } else {
         for (int i = 0; i < rows; i++) {
            for (int j = 0; j < column; j++) {
               if (i > j) {
                  input_matrix[i][j] = 0;
               }
            }
         }
         System.out.println("The upper triangular matrix is: ");
         for (int i = 0; i < rows; i++) {
            for (int j = 0; j < column; j++) {
               System.out.print(input_matrix[i][j] + " ");
            }
            System.out.println();
         }
      }
   }
}

运行此代码后,您将获得以下结果:

The matrix is defined as:
2 1 4
1 2 3
3 6 2
The upper triangular matrix is:
2 1 4
0 2 3
0 0 2

使用 Java 流

在这种方法中,我们使用嵌套的 IntStream.range() 方法而不是 for 循环 来迭代矩阵的每个元素。对于每个元素,如果其行索引大于其列索引(即对角线以下),则打印“0”。否则,打印元素的值。

示例

在这个 Java 程序中,我们使用 Java 流来显示上三角矩阵。

import java.util.Arrays;
import java.util.stream.IntStream;

public class UpperTriangle {
   public static void main(String[] args) {
      int[][] input_matrix = {
         { 2, 3, 6 },
         { 1, 2, 2 },
         { 1, 4, 2 }
      };
      int rows = input_matrix.length;
      int column = input_matrix[0].length;
      System.out.println("Given Matrix: ");
      for (int i = 0; i < rows; i++) {
         for (int j = 0; j < column; j++) {
            System.out.print(input_matrix[i][j] + " ");
         }
         System.out.println();
      }
      System.out.println("The upper triangular matrix is: ");
      IntStream.range(0, input_matrix.length).forEach(i -> {
         IntStream.range(0, input_matrix[i].length)
            .mapToObj(j -> j < i ? "0" : String.valueOf(input_matrix[i][j]))
            .forEach(n -> System.out.print(n + " "));
         System.out.println();
      });
   }
}

代码输出如下:

Given Matrix: 
2 3 6 
1 2 2 
1 4 2 
The upper triangular matrix is: 
2 3 6 
0 2 2 
0 0 2 

更新于: 2024-09-30

782 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告