题目描述
blablabla
样例
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
const int N=10;
int n;
int path[N];
bool state[N];
void dfs(int u)
{if(u>n)
{for(int i=1;i<=n;i++)
printf("%d ",path[i]);
printf("\n");
return;
}
for(int i=1;i<=n;i++)
{
if(!state[i]) //数字没有被用过 且state[i]本身就是0(因为全局变量),所以也可以执行
// if(!1) 表示1的非,则是0;此语句不执行;
{ path[u]=i;//数字填入当前位置
state[i]=1;//数字被用过,修改状态
dfs(u+1);//继续下个位置
// path[u]=0;可以不要
state[i]=0;//回溯,取出i
}
}
}
int main()
{
scanf("%d",&n);
dfs(1);
return 0;
}