求1-8的全排列
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int vis[10],ans[10];
void dfs(int k,int m){
ans[m] = k;
if(m==7){
for(int i=0;i<8;i++){
printf("%d%c",ans[i],i==7?'\n':' ');
}
return;
}
vis[k] = 1;
for(int i=1;i<=8;i++){
if(vis[i]) continue;
dfs(i,m+1);
}
vis[k] = 0;
}
int main()
{
for(int i=1;i<=8;i++) dfs(i, 0);
return 0;
}