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数字。