日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java黑皮书课后题第8章:**8.19(模式识别:四个连续相等的数)编写下面的方法,测试一个二维数组是否有四个连续相等的数字(水平、垂直、对角线方向都可以)。编写一个测试程序,提示用户输入一个数组

發布時間:2024/7/23 java 30 豆豆

**8.19(模式識別:四個連續相等的數)編寫下面的方法,測試一個二維數組是否有四個連續相等的數字(水平、垂直、對角線方向都可以)。編寫一個測試程序,提示用戶輸入一個數組

  • 題目
    • 題目描述與運行實例
    • 破題
  • 代碼

題目

題目描述與運行實例

**8.19(模式識別:四個連續相等的數)編寫下面的方法,測試一個二維數組是否有四個連續相等的數字(水平、垂直、對角線方向都可以):
public static boolean isConsecutiveFour(int[][] values)
編寫一個測試程序,提示用戶輸入一個二維數組的行數、列數以及數組中的值
如果這個數組中有四個連續相等的數組,就顯示true;反之顯示false
如下是顯示true的例子:

請輸入數組行數、列數: 6 7 請輸入數組元素: 0 1 0 3 1 6 1 0 1 6 8 6 0 1 5 6 2 1 8 2 9 6 5 6 1 1 9 1 1 3 6 1 4 0 7 3 3 3 3 4 0 7 true 請輸入數組行數、列數: 6 7 請輸入數組元素: 0 1 0 3 1 6 1 0 1 6 8 6 0 1 5 5 2 1 8 2 9 6 5 6 1 1 9 1 1 5 6 1 4 0 7 3 5 3 3 4 0 7 true 請輸入數組行數、列數: 6 7 請輸入數組元素: 0 1 0 3 1 6 1 0 1 6 8 6 0 1 5 6 2 1 6 2 9 6 5 6 6 1 9 1 1 3 6 1 4 0 7 3 6 3 3 4 0 7 true 請輸入數組行數、列數: 6 7 請輸入數組元素: 0 1 0 3 1 6 1 0 1 6 8 6 0 1 9 6 2 1 8 2 9 6 9 6 1 1 9 1 1 3 9 1 4 0 7 3 3 3 9 4 0 7 true

破題

  • 主方法:接收用戶輸入,使用int接收行數、列數
  • 主方法:聲明一個二維數組,長度為剛剛接收的行數*列數
  • 主方法:使用循環接收用戶輸入的數組元素
  • 主方法:調用方法isConsecutiveFour,傳入數組
  • 主方法:使用條件判斷語句判斷方法返回值,根據結果返回不同boolean值
  • 方法isConsecutiveFour:先獲取values數組的行數、列數
  • 方法isConsecutiveFour:分別對數組的行、列進行遍歷,尋找是否有重復元素;再對數組對角線進行遍歷,看是否能找到
  • 方法isConsecutiveFour:如果找到返回true,找不到返回false
  • 代碼

    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(模式识别:四个连续相等的数)编写下面的方法,测试一个二维数组是否有四个连续相等的数字(水平、垂直、对角线方向都可以)。编写一个测试程序,提示用户输入一个数组的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。