在递归中的话if后难道不会直接结束吗?
#include <iostream>
#pragma optimize(2)
using namespace std;
const long long MAX=14;
typedef int ll;
ll n,a[MAX];
int use[MAX];
void dfs(ll u){
if(u==n){
for (int i = 0; i <n ; ++i) {
cout<<" "<<a[i];
}
cout<<endl;
}else{
for (int i = 1; i <=n ; ++i) {
if(!use[i]){
use[i]= 1;
a[u]=i;
dfs(u+1);
use[i]= 0;
}
}
}
}
int main() {
cin>>n;
dfs(0);
return 0;
}
谢谢