4 solutions
-
0
#include<bits/stdc++.h> using namespace std; int dx[]={-1,-1,-1,0,1,1,1,0}; int dy[]={-1,0,1,1,1,0,-1,-1}; int n,m;char a[105][105]; char c[105][105]; int main() { cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; c[i][j]=a[i][j]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int cnt=0; if(a[i][j]=='?'){ for(int r=0;r<8;r++){ if(a[i+dx[r]][j+dy[r]]=='*'){ cnt++; } } c[i][j]=cnt+'0'; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cout<<c[i][j]; } cout<<endl; } return 0; } -
0
#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
#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
- 49
- Accepted
- 22
- Uploaded By