【摘要】 题目描述:
任意输入两个9阶以下矩阵,要求判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。
要求先输入矩阵阶数,然后输入两个矩阵,每行两个数之间可以用任意个空格分隔。行之间用回车分隔,两个矩阵间用任意的回车分隔。
12
输入:
输入有多组数据。
每组数据第一行输入n(1<=n<=9),从第二行开始输入两个n阶…
题目描述:
任意输入两个9阶以下矩阵,要求判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。
要求先输入矩阵阶数,然后输入两个矩阵,每行两个数之间可以用任意个空格分隔。行之间用回车分隔,两个矩阵间用任意的回车分隔。
输入:
输入有多组数据。
每组数据第一行输入n(1<=n<=9),从第二行开始输入两个n阶矩阵。
输出:
判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。
如果旋转角度的结果有多个,则输出最小的那个。
样例输入
3
1 2 3
4 5 6
7 8 9
7 4 1
8 5 2
9 6 3
样例输出
90
解题思路:
只要看原数组中[0][0]位置的数字出现在旋转后数组的哪个位置,就可以知道数组旋转了多少度。
在右上角说明旋转了90度,在右下角说明旋转了180度,在左下角说明旋转了270度,在左上角说明无旋转,即0度。
有了思路之后用代码表达出来就行了。
import java.util.Scanner;
public class P1102 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] num1 = new int[n][n]; int[][] num2 = new int[n][n]; int i,j; for (i=0; i<n; i++) { for (j=0; j<n; j++) { num1[i][j] = sc.nextInt(); } } for (i=0; i<n; i++) { for (j=0; j<n; j++) { num2[i][j] = sc.nextInt(); } } if (num2[0][0] == num1[0][0]) System.out.print(0); else if (num2[0][n-1] == num1[0][0]) System.out.print(90); else if (num2[n-1][n-1] == num1[0][0]) System.out.print(180); else if (num2[n-1][0] == num1[0][0]) System.out.print(270); }
}
本人是代码新手,刚接触Java不久。希望这篇博文能够帮到您。如果您发现了代码中的错误或者您有更好的想法,欢迎您评论指正。
文章来源: blog.csdn.net,作者:cheems404,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/cheems404/article/details/116351771
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END