算法知识点: 枚举
复杂度:
解题思路:
依次枚举每个空格,然后统计八个方向上的相邻格子有没有地雷即可。
C++ 代码:
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N = 110; int n, m; char g[N][N]; int main() { scanf("%d%d", &n, &m); for (int i = 0; i < n; i++) cin >> g[i]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) if (g[i][j] == '*') cout << '*'; else { int s = 0; for (int x = i - 1; x <= i + 1; x++) for (int y = j - 1; y <= j + 1; y++) if (x != i || y != j) { if (x >= 0 && x <n && y>= 0 && y < m && g[x][y] == '*') s++; } cout << s; } cout << endl; } return 0; }