这就是一个深搜,我们把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;
}