#include<bits/stdc++.h>
using namespace std;
int a[9]; // 存当前排列
// 8个位置全部填完
if(x>8){
// 输出当前排列
cout<<endl;
return;
}
// 枚举当前位放哪个数字
for(int i=1;i<=8;i++){
// 没用过才能放
if(v[i]==0){
a[x]=i; // 第x位放i
v[i]=1; // 标记i已经用过
dfs(x+1); // 去填下一位
v[i]=0; // 回溯:撤销使用
}
}
}
int main(){
dfs(1);
return 0;
}
using namespace std;
int a[9]; // 存当前排列
int v[9]; // 标记数字是否用过
//dfs(x)表示现在正在填第x个位置
void dfs(int x){// 8个位置全部填完
if(x>8){
// 输出当前排列
for(int i=1;i<=8;i++){
cout<<a[i]<<" ";
}cout<<endl;
return;
}
// 枚举当前位放哪个数字
for(int i=1;i<=8;i++){
// 没用过才能放
if(v[i]==0){
a[x]=i; // 第x位放i
v[i]=1; // 标记i已经用过
dfs(x+1); // 去填下一位
v[i]=0; // 回溯:撤销使用
}
}
}
int main(){
dfs(1);
return 0;
}

京公网安备 11010502036488号