java代码实现上面的题

时间: 2024-09-21 14:03:35 浏览: 11
为了帮助你在Java中实现上述二维矩阵的顺时针、逆时针和180度旋转,我们可以创建一个简单的类来处理这个问题。这里提供一个基础的示例代码: ```java public class MatrixRotation { public static void main(String[] args) { int[][] matrix = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}}; int n = matrix.length; int angle = getAngleFromInput(args); // 假设getAngleFromInput函数用于获取输入角度 switch (angle) { case 90: rotateMatrix90(matrix, n); break; case 180: rotateMatrix180(matrix, n); break; case -90: rotateMatrix90(matrix, n, true); // 第二个参数表示逆时针 break; default: System.out.println("Invalid angle"); return; } printRotatedMatrix(matrix); } private static void rotateMatrix90(int[][] matrix, int n, boolean isClockwise) { for (int i = 0; i < n / 2; i++) { for (int j = i; j < n - i - 1; j++) { int temp = matrix[i][j]; if (!isClockwise) temp = matrix[n - 1 - j][i]; // 逆时针旋转 matrix[i][j] = matrix[n - 1 - j][n - 1 - i]; matrix[n - 1 - j][n - 1 - i] = matrix[j][n - 1 - j]; matrix[i][n - 1 - j] = temp; } } } private static void rotateMatrix180(int[][] matrix, int n) { for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[n - 1 - j][n - 1 - i]; matrix[n - 1 - j][n - 1 - i] = temp; } } } private static void printRotatedMatrix(int[][] matrix) { for (int[] row : matrix) { for (int num : row) { System.out.print(num + " "); } System.out.println(); } } } ``` 这个代码首先读取矩阵和旋转角度,然后根据角度调用相应的旋转函数。`rotateMatrix90` 和 `rotateMatrix180` 函数分别实现了顺时针和180度旋转,它们通过交换矩阵元素的位置来达到旋转的效果。最后,`printRotatedMatrix` 函数打印出旋转后的矩阵。 注意,这个例子假设了输入角度是从命令行参数获取的,实际应用中你可能需要从文件或其他来源读取。此外,`getAngleFromInput` 和错误处理部分在这里省略了,你需要根据实际情况补充这部分代码。

相关推荐