Java 创建一个矩阵并填充它

Java 创建一个矩阵并填充它

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

根据问题描述,我们需要创建一个矩阵并将它填充满阿姆斯特朗数。

让我们开始吧!

例如

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

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

输入行数:4

输入列数:3

阿姆斯特朗矩阵:

0 1 2 
3 4 5 
6 7 8 
9 153 370

步骤

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

步骤2 :创建一个方阵。

步骤3 :检查阿姆斯特朗数并将其插入矩阵。

步骤4 :打印结果。

多种方法

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

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

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

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

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

在这种方法中,矩阵元素将在程序中进行初始化。然后根据算法创建一个矩阵并将其填充为阿姆斯特朗数。

示例

import java.util.Scanner;
public class Main 
{
   public static void main(String[] args) 
   {
      // taking size of the matrix
      Scanner scanner = new Scanner(System.in);
      System.out.print("Enter the number of rows: ");
      int rows = scanner.nextInt();
      System.out.print("Enter the number of columns: ");
      int columns = scanner.nextInt();
      // create a square matrix
      int[][] matrix = createArmstrongMatrix(rows, columns);
      // print the result
      System.out.println("Armstrong Matrix:");
      displayMatrix(matrix);
   }
   // Function to create a matrix and fill it with Armstrong numbers
   public static int[][] createArmstrongMatrix(int rows, int columns) {
      int[][] matrix = new int[rows][columns];
      int number = 0;
      for (int i = 0; i < rows; i++) {
         for (int j = 0; j < columns; j++) {
            while (!isArmstrongNumber(number)) {
               number++;
            }
            matrix[i][j] = number;
            number++;
         }
      }
      return matrix;
   }
   // Function to check if a number is an Armstrong number
   public static boolean isArmstrongNumber(int number) {
      int originalNumber = number;
      int result = 0;
      int digits = String.valueOf(number).length();

      while (number != 0) {
         int remainder = number % 10;
         result += Math.pow(remainder, digits);
         number /= 10;
      }
      return originalNumber == result;
   }
   // Function to display the matrix
   public static void displayMatrix(int[][] matrix) {
      for (int[] row : matrix) {
         for (int element : row) {
            System.out.print(element + " ");
         }
         System.out.println();
      }
   }
}

输出

Enter the number of rows: 4
Enter the number of columns: 3
Armstrong Matrix:
0 1 2 
3 4 5 
6 7 8 
9 153 370

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

在这个方法中,程序会初始化矩阵元素。然后通过将矩阵作为参数传递给用户定义的方法,并在方法内部根据算法创建一个矩阵并用阿姆斯特朗数填充。

示例

import java.util.Scanner;
public class Main 
{
   // main method
   public static void main(String[] args) 
   {
      // taking size of the matrix
      Scanner scanner = new Scanner(System.in);
      System.out.print("Enter the number of rows: ");
      int rows = scanner.nextInt();
      System.out.print("Enter the number of columns: ");
      int columns = scanner.nextInt();
      // calling user defined method
      func(rows, columns);    
   }
   // user defined method
   public static void func(int rows, int columns)
   {
      // create a square matrix
      int[][] matrix = createArmstrongMatrix(rows, columns);
      // print the result
      System.out.println("Armstrong Matrix:");
      displayMatrix(matrix);
   }
   // Function to create a matrix and fill it with Armstrong numbers
   public static int[][] createArmstrongMatrix(int rows, int columns) {
      int[][] matrix = new int[rows][columns];
      int number = 0;
      for (int i = 0; i < rows; i++) {
         for (int j = 0; j < columns; j++) {
            while (!isArmstrongNumber(number)) {
               number++;
            }
            matrix[i][j] = number;
            number++;
         }
      }
      return matrix;
   }
   // Function to check if a number is an Armstrong number
   public static boolean isArmstrongNumber(int number) {
      int originalNumber = number;
      int result = 0;
      int digits = String.valueOf(number).length();
      while (number != 0) {
         int remainder = number % 10;
         result += Math.pow(remainder, digits);
         number /= 10;
      }
      return originalNumber == result;
   }
   // Function to display the matrix
   public static void displayMatrix(int[][] matrix) {
      for (int[] row : matrix) {
         for (int element : row) {
            System.out.print(element + " ");
         }
         System.out.println();
      }
   }
}

输出

Enter the number of rows: 4
Enter the number of columns: 4
Armstrong Matrix:
0 1 2 3 
4 5 6 7 
8 9 153 370 
371 407 1634 8208

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程