天天看點

【卡雷爾杯】全球變暖

//8.全球變暖–1

import java.util.Random;

import java.util.Scanner;

public class Test08 {

public static void main(String[] args) {

Random r = new Random();

Scanner sc = new Scanner(System.in);

System.out.println(“請輸入一個數,來表示NxN矩陣的N:”);

int printNum = sc.nextInt();

int[][] arr = new int[printNum][printNum], arrCopy = new int[printNum][printNum];

//randomNum的取值為0.51.5,若值在0.51之間,則系統傳回0;在1~1.5之間,系統傳回1

int randomNum;

//對數組進行随機化模拟海域

for (int i = 0; i < arr.length; i++) {

System.out.println();

//第一行,第一列,第N行,第N列均為海洋元素(0)

for (int j = 0; j < arr.length; j++) {

if(i == 0 || i == printNum - 1){

//數組預設初始化值為0,是以直接跳過本次循環

continue;

}else if(j == 0 || j == printNum - 1){

//數組預設初始化值為0,是以不做任何處理

} else {

randomNum = (int) (0.5 + r.nextDouble());

//用0表示海洋元素,用1表示陸地元素

if (randomNum == 1) {

arr[i][j] = randomNum;

}

}

}

}

//周遊數組列印輸出資料—可以删掉,主要用來直覺表現

for (int i = 0; i < arr.length; i++) {

for (int j = 0; j < arr.length; j++) {

System.out.print(arr[i][j]);

}

System.out.println();

}

System.out.println("n年後...");
    //數年後的海域
    for (int i = 0; i < arr.length; i++) {
        for (int j = 0; j < arr.length; j++) {
            if(i == 0 || i == printNum - 1){
                //第1行,第N行為海洋元素,是以直接跳過本次循環
                continue;
            }else if(j == 0 || j == printNum - 1){
                //第1列,第N列均為海洋元素,是以不做任何處理
            } else{
                //該子產品的上下左右均有一個子產品為陸地元素(1)
                if(arr[i - 1][j] == 1 && arr[i + 1][j] == 1 && arr[i][j - 1] == 1 && arr[i][j + 1] == 1 && arr[i][j] == 1){
                    //該子產品為陸地元素
                    arrCopy[i][j] = 1;
                }
            }
        }
    }
    //周遊數組對陸地元素計數
    int count = 0;
    for (int i = 0; i < arrCopy.length; i++) {
        for (int j = 0; j < arrCopy.length; j++) {
            if(arrCopy[i][j] == 1){
                count++;
            }
        }
    }
    //周遊數組列印輸出資料---可以删掉,主要用來直覺表現
    for (int i = 0; i < arrCopy.length; i++) {
        for (int j = 0; j < arrCopy.length; j++) {
            System.out.print(arrCopy[i][j]);
        }
        System.out.println();
    }
    System.out.println("陸地還有" + count + "塊。");
}
           

}