1 条题解
-
0
Guest
-
0
思路
模拟题,没啥好讲的,详见注释。
code
#include<bits/stdc++.h> using namespace std; char a[105][105]; int b[105][105]; int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(a[i][j]=='*'){//方便输出 b[i][j]=-1; }else{//将旁边的雷加起来 if(a[i][j-1]=='*') b[i][j]++; if(a[i+1][j-1]=='*') b[i][j]++; if(a[i-1][j-1]=='*') b[i][j]++; if(a[i][j+1]=='*') b[i][j]++; if(a[i+1][j+1]=='*') b[i][j]++; if(a[i-1][j+1]=='*') b[i][j]++; if(a[i+1][j]=='*') b[i][j]++; if(a[i-1][j]=='*') b[i][j]++; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(b[i][j]==-1) cout<<"*"; else cout<<b[i][j]; } cout<<endl; } return 0; }
- 1
信息
- ID
- 475
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 4
- 已通过
- 3
- 上传者