本文主要是介绍2018蓝桥杯Java B组 全球变暖问题:,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解题思路:需要保证第一行、第一列、最后一列和最后一行是’.’字符,需要使用两个二维字符数组分别存储原来的和变化的。算法渣渣当时只想到这种简单思维的做法,欢迎大牛留言更好的想法。
import java.util.Scanner;
/*** 2018蓝桥杯Java B组 全球变暖问题:* 条件:.代表海洋像素,#代表像素,相连的一块#代表岛屿,如果陆地像素左右上下某个方向有海洋便会被淹没成海洋输入:7........##......##........##....###......##.........输出:...............................#.................* Created by XQM on 2018/4/2.*/
public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();//输入n构成n*n二维数组String[] s = new String[n];char[] c;char[][] a = new char[n][n];//存储输入的字符char[][] b = new char[n][n];//存储输出的字符//输入for (int i = 0;i < n;i++){s[i] = sc.next();c = s[i].toCharArray();for (int j = 0; j < n;j++){a[i][j] = c[j];b[i][j] = c[j];}}char temp;//题目的要求是第一行、第一列、最后一行、最后一列都是.for (int i = 0;i < n;i++){for (int j = 0; j < n;j++){if (i != 0 && i != 6 && j != 0 && j != 6){temp = a[i][j];if (temp == '#'){if ((temp != a[i][j-1]) || (temp != a[i-1][j]) || (temp != a[i][j+1]) || (temp != a[i+1][j])){b[i][j] = '.';}}}else {b[i][j] = '.';}}}//输出for (int i = 0;i < n;i++){for (int j = 0; j < n;j++){System.out.print(b[i][j]);}System.out.println();}}
}
输入输出如下图:
这篇关于2018蓝桥杯Java B组 全球变暖问题:的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!