Java 程序创建矩阵并用回文数填充它

javaobject oriented programmingprogramming更新于 2024/8/5 0:50:00

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

根据问题陈述,我们必须创建一个矩阵并用回文数填充它。

让我们开始吧!

例如

假设我们有一个 4*5 矩阵:

对矩阵执行操作后,结果将是:

输入行数:4

输入列数:5

带有回文数的矩阵:

1 2 3 4 5
6 7 8 9 11
22 33 44 55 66
77 88 99 101 111

算法

步骤 1:获取矩阵的大小。

步骤 2:创建一个方阵。

步骤 3:检查回文数并将其插入矩阵。

步骤 4:打印结果。

多种方法

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

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

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

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

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

在此方法中,矩阵元素将在程序中初始化。然后按照算法创建一个矩阵并用回文数填充它。

示例

import java.util.Scanner;
public class Main 
{
   // Main 方法
   public static void main(String[] args) 
   {
        // 获取矩阵的大小
        Scanner scanner = new Scanner(System.in);
        System.out.print("输入行数:");
        int rows = scanner.nextInt();
        System.out.print("输入列数:");
        int columns = scanner.nextInt();
        // 创建一个方阵
        int[][] matrix = new int[rows][columns];
        // 用回文数填充矩阵
        fillMatrixWithPalindromes(matrix);
        // 打印矩阵
        System.out.println("带有回文数的矩阵:");
        printMatrix(matrix);
   }   
   // 函数创建矩阵并用回文数填充它
   public static void fillMatrixWithPalindromes(int[][] matrix) {
      int num = 1;      
      for (int i = 0; i < matrix.length; i++) {
         for (int j = 0; j < matrix[0].length; j++) {
            // 寻找下一个回文数
            while (!isPalindrome(num)) {
               num++;
            }            
            // 用回文数填充矩阵
            matrix[i][j] = num;
            num++;
         }
      }
   }   
   // 函数检查一个数字是否是回文数
   public static boolean isPalindrome(int number) {
      String str = String.valueOf(number);
      int i = 0;
      int j = str.length() - 1;      
      while (i < j) {
         if (str.charAt(i) != str.charAt(j)) {
            return false;
         }
         i++;
         j--;
      }      
      return true;
   }   
   // 显示矩阵的函数
   public static void printMatrix(int[][] matrix) {
      for (int i = 0; i < matrix.length; i++) {
         for (int j = 0; j < matrix[0].length; j++) {
            System.out.print(matrix[i][j] + " ");
         }
         System.out.println();
      }
   }
}

输出

输入行数:4
输入列数:5
带有回文数的矩阵:
1 2 3 4 5
6 7 8 9 11
22 33 44 55 66
77 88 99 101 111

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

在此方法中,矩阵元素将在程序中初始化。然后通过将矩阵作为参数传递并按照算法在方法内部创建矩阵并用回文数填充来调用用户定义方法。

示例

import java.util.Scanner;
public class Main 
{
   // Main 方法
   public static void main(String[] args) 
   {
        // 获取矩阵的大小
        Scanner scanner = new Scanner(System.in);
        System.out.print("输入行数: ");
        int rows = scanner.nextInt();
        System.out.print("输入列数: ");
        int columns = scanner.nextInt();
        // 调用用户定义的方法
        func(rows, columns); 
      
   }  
   // user defined method
   public static void func(int rows, int columns)
   {
        // 创建一个方阵
        int[][] matrix = new int[rows][columns];
        // 用回文数填充矩阵
        fillMatrixWithPalindromes(matrix);
        
        // 打印矩阵
        System.out.println("带有回文数的矩阵:");
        printMatrix(matrix);
   }
   // 函数创建矩阵并用回文数填充它
   public static void fillMatrixWithPalindromes(int[][] matrix) {
      int num = 1;
      
      for (int i = 0; i < matrix.length; i++) {
         for (int j = 0; j < matrix[0].length; j++) {
            // 寻找下一个回文数
            while (!isPalindrome(num)) {
               num++;
            }
            
            // 用回文数填充矩阵
            matrix[i][j] = num;
            num++;
         }
      }
   } 
   // 函数检查一个数字是否是回文数
   public static boolean isPalindrome(int number) {
      String str = String.valueOf(number);
      int i = 0;
      int j = str.length() - 1;
     
      while (i < j) {
         if (str.charAt(i) != str.charAt(j)) {
            return false;
         }
         i++;
         j--;
      }
      
      return true;
   } 
   // 显示矩阵的函数
   public static void printMatrix(int[][] matrix) {
      for (int i = 0; i < matrix.length; i++) {
         for (int j = 0; j < matrix[0].length; j++) {
            System.out.print(matrix[i][j] + " ");
         }
         System.out.println();
      }
   }
}

输出

输入行数:5
输入列数:5
包含回文数的矩阵:
1 2 3 4 5
6 7 8 9 11
22 33 44 55 66
77 88 99 101 111
121 131 141 151 161

在本文中,我们探讨了如何使用 Java 编程语言创建矩阵并用回文数填充矩阵。


相关文章