1 solutions

  • 1
    @ 2025-6-8 11:27:37
    #include<bits/stdc++.h>
    using namespace std;
    int dx[]={-1,-1,-1,0,0,1,1,1};
    int dy[]={-1,0,1,-1,1,-1,0,1};
    //相邻的方向
    const int N=110;
    char g[N][N];
    int main()
    {
        int n,m;
        cin>>n>>m;
        for(int i=1;i<=n;i++) //获取地图
        {
            for(int j=1;j<=m;j++)
            {
                cin>>g[i][j];
            }
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
            {
                int cnt=0; //地雷个数
                if(g[i][j]=='*') cout<<"*"; //地雷
                else  //枚举周围的点,计算地雷个数
                {
                    for(int k=0;k<8;k++)
                    {
                        int a=i+dx[k],b=j+dy[k];
                        if(g[a][b]=='*') cnt++;
                    }
                    cout<<cnt;
                }
            }
            cout<<endl;
        }
        return 0;
    }
    
    

    Information

    ID
    554
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    3
    Tags
    (None)
    # Submissions
    22
    Accepted
    5
    Uploaded By