解题思路: 暴力枚举~
注意事项: !!!!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语言程序设计教程(第三版)课后习题6.1 (C++代码)__gcd()是已经写好的函数,可以直接使用浏览:1929 |
C语言训练-求函数值 (C语言代码)浏览:910 |
C语言训练-舍罕王的失算 (C语言代码)浏览:1033 |
C语言考试练习题_排列 (C语言代码)浏览:1315 |
大小写转换 (C语言代码)浏览:839 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:534 |
【魔板】 (C++代码)(时间超限,希望会的帮我改正一下)浏览:735 |
数对 (C语言代码)浏览:697 |
1014题解浏览:484 |
出圈】指针malloc版浏览:355 |