算法知识点: 枚举
复杂度:
解题思路:
依次枚举每个空格,然后统计八个方向上的相邻格子有没有地雷即可。
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;
} 
京公网安备 11010502036488号