#include<iostream>
using namespace std;
int arr[10] = {0}; //保存每个1~9的排列
int vis[10] = {0}; //保存哪个数被用过了
void dfs(int*a,int st,int loc){ //st要填的数,loc要填的位置
vis[st] = 1;
a[loc] = st;
if(loc == 9){
for(int i = 1;i <= 9;i++){
cout<<a[i];
}
cout<<endl;
return;
}
for(int i = 1;i <= 9;i++){
if(!vis[i]){
dfs(a,i,loc+1);
vis[i] = 0;
}
}
vis[st] = 0;
}
int main(){
for(int i = 1;i <= 9;i++){
dfs(arr,i,1);
}
return 0;
}
全排列(DFS)
最新推荐文章于 2024-02-25 23:12:32 发布