这就是一个深搜,我们把dfs的参数设为第x位,所以就是遍历1~8,看看哪个数没有被用到(也就是设置vis数组来表示有没有被用到),a数组用来表示第x位为哪个数字
#include<iostream>
using namespace std;
const int N=9;
int a[N],vis[N];
void dfs(int x)
{
if(x==N)
{
for(int i=1;i<N;i++)
cout<<a[i]<<' ';
cout<<endl;
return ;
}
else
{
for(int i=1;i<N;i++)
{
if(!vis[i])
{
vis[i]=true;
a[x]=i;
dfs(x+1);
vis[i]=false;
}
}
}
}
int main()
{
dfs(1);
return 0;
}