洛谷原题:https://www.luogu.com.cn/problem/P2670
样例都过不了,似乎死循环了?是dfs函数写错了吗
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
int n,m,cnt;
char c[101][101];
int d[101][101];
int dfs(int a,int b){
int ans=0;
if(c[a][b]=='*')ans++;
for(int i=-1;i<=1;i++)for(int j=-1;j<=1;j++)dfs(a+i,a+j);
return ans;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){
cin>>c[i][j];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(c[i][j]=='*')cout<<"*";
else{cnt=dfs(i,j);
cout<<cnt;
}
cout<<"\n";
}
}
return 0;
}