不知道哪里出现了问题,没有输出,程序要手动关
#include <bits/stdc++.h>
using namespace std;
int a[10][10];
int bookx[10][10],booky[10][10],bookz[10][10];
void outt()
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
}
void dfs(int x,int y)
{
if(x==10)
{
outt();
dfs(x,y+1);
}
if(y==9)
{
x++;
y=0;
dfs(x,y);
}
for(int i=1;i<=9;i++)
{
if(bookx[i][x]==0 && booky[i][y]==0 && bookz[i][x/3*3+y/3]==0)
{
a[x][y]=i;
bookx[i][x]=1;
booky[i][y]=1;
bookz[i][x/3*3+y/3]=1;
dfs(x,y+1);
bookx[i][x]=0;
booky[i][y]=0;
bookz[i][x/3*3+y/3]=0;
}
}
return ;
}
int main()
{
for(int i=1;i<=9;i++)
for(int j=1;j<=9;j++)
{
int b;
cin>>b;
a[i][j]=b;
if(b!=0)
{
bookx[b][i]=1;
booky[b][j]=1;
bookz[b][i/3*3+j/3];
}
}
dfs(0,0);
return 0;
}