数据范围:1≤n≤9
输入样例:
3
输出样例:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
答案:
//填坑
#include<iostream>
using namespace std;
const int N=9;
int n;//输入多少个数据
int array[N];//定义输出数组
bool used[N];//判断该值是否被使用过
void dfs(int u){
if(u>n){//如果所有位置都满了,就输出数组
for(int i=1;i<=n;i++)
cout<<array[i]<<" ";
cout<<endl;
return;
}
for(int i=1;i<=n;i++){
if(!used[i]){ //如果这个数没有被用过 false
array[u]=i;//在数组的第u个位置插入
used[i]=true;//将该数设置为已使用
dfs(u+1);//开始选下一个位置的数字
//初始化
array[u]=0;
used[i]=false;
}
}
}
int main(){
cin>>n;
dfs(1);
return 0;
}