如何在 Java 中将矩阵旋转 180 度?
在 Java 中,数组是一个对象。它是一种非原始数据类型,用于存储相同数据类型的值。Java 中的矩阵只不过是一个多维数组,它表示多行和多列。
根据问题陈述,我们必须将给定的矩阵旋转 180 度。这意味着我们必须垂直对称地交换给定矩阵的行。
让我们深入研究本文,了解如何使用 Java 编程语言来实现它。
向您展示一些实例
实例 1
假设原始矩阵为
{
{10, 20, 30},
{40, 50, 60},
{70, 80, 90}
}
将矩阵旋转 180 度后
{
{90, 80, 70},
{60, 50, 40},
{30, 20, 10}
}
实例 2
假设原始矩阵为
{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
}
将矩阵旋转 180 度后
{
{9, 8, 7},
{6, 5, 4},
{3, 2, 1}
}
实例 3
假设原始矩阵为
{
{11, 22, 33},
{44, 55, 66},
{77, 88, 99}
}
将矩阵旋转 180 度后
{
{99, 88, 77},
{66, 55, 44},
{33, 22, 11}
}
算法
步骤 1 - 声明并初始化一个整数类型的多维数组。
步骤 2 - 声明两个整数类型变量来存储给定矩阵的行和列的长度。
步骤 3 - 使用嵌套 for 循环将矩阵旋转 180 度,并将新矩阵存储到另一个空矩阵中。
步骤 4 - 打印结果矩阵作为输出。
语法
要获取数组的长度(数组中元素的数量),数组有一个内置属性,即length
下面是指其语法
array.length
其中,“array”指的是数组引用。
多种方法
我们提供了不同方法的解决方案。
使用数组元素的静态初始化
使用用户定义的方法
让我们逐一查看程序及其输出。
方法 1:使用带有 pow() 函数的矩阵静态初始化
在此方法中,矩阵元素将在程序中初始化。然后根据算法用其平方替换矩阵元素。这里我们将使用内置的 Pow() 函数来获取元素的平方。
示例
public class Main{
public static void main(String[] args){
//declare a matrix with some random values
int[][] inputMatrix = {
{10, 20, 30},
{40, 50, 60},
{70, 80, 90}
};
//declare a variable to store the row count
int r = inputMatrix.length;
//declare a variable to store the row count
int c = inputMatrix[0].length;
//declare an empty matrix
int[][] rotatedMAt = new int[r][c];
//take nested for loop to rotate the matrix to 180 degree
for (int i = 0; i < r; i++){
for (int j = 0; j < c; j++){
rotatedMAt[i][j] = inputMatrix[r - i - 1][c - j - 1];
}
}
//print the given matrix
System.out.println("Given Matrix:");
for (int i = 0; i < r; i++){
for (int j = 0; j < c; j++){
System.out.print(inputMatrix[i][j] + " ");
}
System.out.println();
}
//print the rotated matrix
System.out.println("Rotated- 180 degree Matrix:");
for (int i = 0; i < r; i++){
for (int j = 0; j < c; j++){
System.out.print(rotatedMAt[i][j] + " ");
}
System.out.println();
}
}
}
输出
Given Matrix: 10 20 30 40 50 60 70 80 90 Rotated- 180 degree Matrix: 90 80 70 60 50 40 30 20 10
方法 2:使用用户定义的方法
在此方法中,数组元素将在程序中初始化。然后通过将数组作为参数传递来调用用户定义的方法,并在方法内部根据算法将矩阵旋转 180 度。
示例
public class Main{
//user-defined method to rotate the matrix to 180 degree
public static void Rotate(int[][] inputMatrix){
//declare a variable to store the row count
int r = inputMatrix.length;
//declare a variable to store the row count
int c = inputMatrix[0].length;
//declare an empty matrix
int[][] rotatedMAt = new int[r][c];
//take nested for loop to rotate the matrix to 180 degree
for (int i = 0; i < r; i++){
for (int j = 0; j < c; j++){
rotatedMAt[i][j] = inputMatrix[r - i - 1][c - j - 1];
}
}
//print the given matrix
System.out.println("Given Matrix:");
for (int i = 0; i < r; i++){
for (int j = 0; j < c; j++){
System.out.print(inputMatrix[i][j] + " ");
}
System.out.println();
}
//print the rotated matrix
System.out.println("Rotated- 180 degree Matrix:");
for (int i = 0; i < r; i++){
for (int j = 0; j < c; j++){
System.out.print(rotatedMAt[i][j] + " ");
}
System.out.println();
}
}
public static void main(String[] args){
//declare a matrix with some random values
int[][] inpMatrix = {
{22, 12, 54},
{2, 76, 23},
{124, 67, 34}
};
//call the user-defined method
Rotate(inpMatrix);
}
}
输出
Given Matrix: 22 12 54 2 76 23 124 67 34 Rotated- 180 degree Matrix: 34 67 124 23 76 2 54 12 22
在本文中,我们探讨了使用 Java 编程语言将矩阵旋转 180 度的不同方法。
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP