题解 | 扫雷

扫雷

https://www.nowcoder.com/practice/d5f277427d9a4cd3ae60ea6c276dddfd

#include <iostream>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    char lei[n][m];
    
    // 读取输入矩阵
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            cin >> lei[i][j];
        }
    }
    
    // 处理每个格子
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            if(lei[i][j] == '*') {
                cout << '*';
            } else {
                int count = 0;
                // 检查周围8个方向
                for(int di = -1; di <= 1; di++) {
                    for(int dj = -1; dj <= 1; dj++) {
                        if(di == 0 && dj == 0) continue; // 跳过自己
                        int ni = i + di;
                        int nj = j + dj;
                        // 检查是否在边界内
                        if(ni >= 0 && ni < n && nj >= 0 && nj < m) {
                            if(lei[ni][nj] == '*') {
                                count++;
                            }
                        }
                    }
                }
                cout << count;
            }
        }
        cout << endl; // 每行结束换行
    }
    
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

头像
01-29 18:11
海南大学 Java
奔跑的suechil...:单从项目看这个简历不怕被问穿吗 带微服务的项目需要相当多的项目理解和经验诶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务