解题思路: 暴力枚举~
注意事项: !!!!Field #1: 这个输出真的要注意!!!复制的field与#之间有两个空格!!!而答案里面只有一个空格!!!就是因为这个在提交的时候格式错误了好几次
参考代码:
import java.util.Scanner;
public class P1524 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = 0, m = 0;
n = scanner.nextInt();
m = scanner.nextInt();
int num = 1;
while (n != 0 && m != 0){
String s1 = scanner.nextLine(); //用来吸收空串
String [][] AList = new String[n][m]; //n行m列
for (int i = 0; i < n; i++) {
char [] c0 = scanner.nextLine().toCharArray();
for (int j = 0; j < m; j++) {
AList[i][j] = String.valueOf(c0[j]);
}
}
String [][] result = solve(AList, n, m);
System.out.println("Field #" + num + ":");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print(result[i][j]);
}
System.out.println("");
}
System.out.println("");
num++;
n = scanner.nextInt();
m = scanner.nextInt();
}
}
static String[][] solve(String [][] AList, int n, int m){
String [][] boom = new String[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
int amount = 0; //周遭炸弹数量
String s0 = AList[i][j]; //取出一个字符
if (s0.equals("*")){ //判断是否为炸弹,是则直接记录后进行下一个字符得到检测
boom[i][j] = "*";
continue;
}
//西北方向
if (i - 1 >= 0 && j - 1 >= 0){
if (AList[i - 1][j - 1].equals("*")){
amount++;
}
}
//正北方向
if (i - 1 >= 0){
if (AList[i - 1][j].equals("*")){
amount++;
}
}
//东北方向
if (i - 1 >= 0 && j + 1 < m){
if (AList[i - 1][j + 1].equals("*")){
amount++;
}
}
//正东方向
if (j + 1 < m){
if (AList[i][j + 1].equals("*")){
amount++;
}
}
//东南方向
if (i + 1 < n && j + 1 < m){
if (AList[i + 1][j + 1].equals("*")){
amount++;
}
}
//正南方向
if (i + 1 < n){
if (AList[i + 1][j].equals("*")){
amount++;
}
}
//西南方向
if (i + 1 < n && j - 1 >= 0){
if (AList[i + 1][j - 1].equals("*")){
amount++;
}
}
//正西方向
if (j - 1 >= 0){
if (AList[i][j - 1].equals("*")){
amount++;
}
}
boom[i][j] = String.valueOf(amount);
}
}
return boom;
}
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1436 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:742 |
用筛法求之N内的素数。 (C语言代码)浏览:1231 |
输出正反三角形 (C语言代码)浏览:780 |
1071题解浏览:484 |
1035 题解浏览:778 |
上车人数 (C语言代码)浏览:710 |
【魔板】 (C++代码)浏览:1156 |
C二级辅导-计负均正 (C语言代码)浏览:634 |
C语言程序设计教程(第三版)课后习题9.1 (C语言代码)浏览:532 |