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编程语言创建矩阵并用阿姆斯特朗数填充它。

更新于:2023年8月17日

浏览量:136

开启你的职业生涯

完成课程获得认证

开始学习
广告