2 solutions

  • 1
    @ 2025-9-14 11:39:18

    哇!!!

    • 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;
      }
      
      
    • 1

    Information

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