使用二维数组的思想实现编写一个测试程序,提示用户输入 -个n*n的矩阵(n>=6),并输入矩阵中的每 个值(自定义)。如果这个矩阵中有四个连续 的数字相同,返回true,否则返回 false。 java代码怎么实现
时间: 2024-09-16 08:04:22 浏览: 55
在Java中,我们可以使用二维数组存储矩阵,并遍历整个矩阵来检查是否存在四个连续的数字相同的条件。以下是实现该功能的一个简单示例代码:
```java
import java.util.Scanner;
public class MatrixChecker {
public static boolean checkMatrix(int[][] matrix, int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i + 1 < n && j + 1 < n) { // 避免越界
if (matrix[i][j] == matrix[i+1][j] &&
matrix[i+1][j] == matrix[i][j+1] &&
matrix[i][j+1] == matrix[i+1][j+1]) {
return true;
}
} else if (i + 1 < n) { // 检查最后一列
if (matrix[i][j] == matrix[i+1][j] &&
matrix[i+1][j] == matrix[i][n-1] == matrix[i+1][n-1]) {
return true;
}
} else if (j + 1 < n) { // 检查最后一行
if (matrix[i][j] == matrix[n-1][j] &&
matrix[n-1][j+1] == matrix[i][j+1]) {
return true;
}
} else { // 第一行或第一列单独检查
if (matrix[i][j] == matrix[0][j] ||
matrix[i][j] == matrix[n-1][j] ||
matrix[i][j] == matrix[i][0] ||
matrix[i][j] == matrix[i][n-1]) {
return true;
}
}
}
}
return false; // 没找到符合条件的情况
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入矩阵的大小 (n x n): ");
int n = scanner.nextInt();
if (n >= 6) {
int[][] matrix = new int[n][n];
System.out.println("请输入矩阵元素:");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = scanner.nextInt();
}
}
boolean result = checkMatrix(matrix, n);
System.out.println(result ? "存在四个连续的数字相同" : "不存在这样的情况");
} else {
System.out.println("矩阵大小需大于等于6");
}
scanner.close();
}
}
```
这段代码首先获取用户输入的矩阵大小,然后提示用户输入矩阵的每个元素。接着调用`checkMatrix`函数检查矩阵是否满足条件,最后输出结果。
阅读全文