Java黑皮书课后题第8章:**8.19(模式识别:四个连续相等的数)编写下面的方法,测试一个二维数组是否有四个连续相等的数字(水平、垂直、对角线方向都可以)。编写一个测试程序,提示用户输入一个数组
生活随笔
收集整理的這篇文章主要介紹了
Java黑皮书课后题第8章:**8.19(模式识别:四个连续相等的数)编写下面的方法,测试一个二维数组是否有四个连续相等的数字(水平、垂直、对角线方向都可以)。编写一个测试程序,提示用户输入一个数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
**8.19(模式識別:四個連續相等的數)編寫下面的方法,測試一個二維數組是否有四個連續相等的數字(水平、垂直、對角線方向都可以)。編寫一個測試程序,提示用戶輸入一個數組
- 題目
- 題目描述與運行實例
- 破題
- 代碼
題目
題目描述與運行實例
**8.19(模式識別:四個連續相等的數)編寫下面的方法,測試一個二維數組是否有四個連續相等的數字(水平、垂直、對角線方向都可以):
public static boolean isConsecutiveFour(int[][] values)
編寫一個測試程序,提示用戶輸入一個二維數組的行數、列數以及數組中的值
如果這個數組中有四個連續相等的數組,就顯示true;反之顯示false
如下是顯示true的例子:
破題
代碼
import java.util.Scanner;public class Test8_19 {public static void main(String[] args) {//1. 主方法:接收用戶輸入,使用int接收行數、列數Scanner input = new Scanner(System.in);System.out.println("請輸入數組行數、列數:");int array_row = input.nextInt();int array_col = input.nextInt();//2. 主方法:聲明一個二維數組,長度為剛剛接收的行數*列數int[][] array = new int[array_row][array_col];//3. 主方法:使用循環接收用戶輸入的數組元素System.out.println("請輸入數組元素:");for (int i = 0 ; i < array_row ; i++){for (int j = 0 ; j < array_col ; j++){array[i][j] = input.nextInt();}}//4. 主方法:調用方法isConsecutiveFour,傳入數組//5. 主方法:使用條件判斷語句判斷方法返回值,根據結果返回不同boolean值if ( isConsecutiveFour(array) ){System.out.println("true");} else {System.out.println("false");}}public static boolean isConsecutiveFour(int[][] values){//6. 方法isConsecutiveFour:先獲取values數組的行數、列數int row = values.length;int col = values[0].length;//7. 方法isConsecutiveFour:分別對數組的行、列進行遍歷,尋找是否有重復元素;再對數組兩條對角線進行遍歷,看是否能找到// 行遍歷:如果找到返回truefor (int i = 0 ; i < row ; i++){for (int j = 0 ; j < col - 3 ; j++){if ( values[i][j] == values[i][j+1] && values[i][j+1] == values[i][j+2]&& values[i][j+2] == values[i][j+3])return true;}}// 列遍歷for (int j = 0 ; j < col ; j++){for (int i = 0 ; i < row - 3 ; i++){if ( values[i][j] == values[i+1][j] && values[i+1][j] == values[i+2][j]&& values[i+2][j]== values[i+3][j])return true;}}// 左下到右上的對角線for (int i = 3 ; i < row ; i++){for (int j = 0 ; j < col - 3 ; j++){if (values[i][j] == values[i-1][j+1] && values[i-1][j+1] == values[i-2][j+2]&& values[i-2][j+2]== values[i-3][j+3])return true;}}// 左上到右下的對角線for (int i = 0 ; i < row - 3 ; i++){for (int j = 0 ; j < col - 3 ; j++){if (values[i][j] == values[i+1][j+1] && values[i+1][j+1] == values[i+2][j+2]&& values[i+2][j+2] == values[i+3][j+3])return true;}}//8. 方法isConsecutiveFour:如果找到返回true,找不到返回falsereturn false;} }總結
以上是生活随笔為你收集整理的Java黑皮书课后题第8章:**8.19(模式识别:四个连续相等的数)编写下面的方法,测试一个二维数组是否有四个连续相等的数字(水平、垂直、对角线方向都可以)。编写一个测试程序,提示用户输入一个数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第8章:8.18(打
- 下一篇: Java黑皮书课后题第8章:***8.2