java - 检查这个矩阵是否关于主对角线对称
问题描述
给定数字 n,不超过 10,以及大小为 n × n 的矩阵。检查该矩阵是否关于主对角线对称。如果对称则输出“YES”,否则输出“NO”。
这是我的代码,不幸的是它不起作用。请向我解释如何正确地做到这一点:)
public class Main { public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n= scanner.nextInt();
int[][] number = new int[n][n];
boolean ismatch = false;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
number[i][j] = scanner.nextInt();
}
}
int unevenchecker = (n% 2);
if (unevenchecker != 0) {
for (int k = 0; k < number.length - 1; k++) {
for (int l = 0; l < number.length - 1; l++) {
if (number[k][l] == number[l][k]) {
ismatch = true;
}
}
}
if (ismatch) {
System.out.print("YES");
}
} else {
System.out.print("NO");
}
}
}
解决方案
如果您发现至少 1 个对称对,其中 2 个部分不相等,则矩阵不是对称的,因此不要检查循环内的相等性,而是检查不等式:
ismatch = true;
for (int k = 0; k < number.length - 1; k++) {
for (int l = 0; l < number.length - 1; l++) {
if (number[k][l] != number[l][k]) {
ismatch = false;
break;
}
}
}
推荐阅读
- json - 将解析后的内容提交到 ElasticSearch
- json - 在 Excel 中使用 VBA 时 Firebase REST API 不解析 JSON
- node.js - React 中的删除请求
- c# - OutOfMemory Exeption VSTO 加载项 Office 2016 64 位
- python - Dialogflow:管理多个代理的多个凭据
- nsis - NSIS:尽管 preproccsor 得到警告,但检测到未知变量/常量“测试”
- java - Spring JPA 数据:自定义通用存储库和服务:UnsatisfiedDependencyException
- php - 如果结果是 Laravel,则将值传递给速记
- dart - 我如何连接两个字符串,其中一个字符串需要是颤动中小部件的静态变量
- c# - c# 类图到 Neo4j