#include<bits/stdc++.h>
using namespace std;
int s[15][15];
void bfs(int sx,int sy)
{
if(sy>9)
{
sx++;
sy=1;
}
if(sx>9)
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)
{
cout<<s[i][j]<<' ';
}
cout<<endl;
}
exit(0);
}
if(s[sx][sy]) bfs(sx,sy+1);
else
{
bool vis[10]={0};
for(int i=1;i<=sy;i++) vis[s[sx][i]]=1;
for(int i=1;i<=sx;i++) vis[s[i][sy]]=1;
int shang1=(sx-1)/3+1,shang2=(sy-1)/3+1;
int fx=(shang1-1)*3+1,fy=(shang2-1)*3+1;
for(int i=fx;i<=fx+2;i++)
{
for(int j=fy;j<=fy+2;j++)
{
vis[s[i][j]]=1;
}
}
for(int i=1;i<=9;i++)
{
if(!vis[i])
{
s[sx][sy]=i;
bfs(sx,sy+1);
s[sx][sy]=0;
}
}
}
}
int main()
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)
{
cin>>s[i][j];
}
}
bfs(1,1);
return 0;
}
我暂时找不到漏洞,但是它就是有错误,请各位大佬找一下错误。谢谢!!!